WP e-Commerce is the oldest of the WordPress e-commerce plugins, the very first one I tried and used, and also one of my favorite plugins (that is not mine) to contribute back to.
I’ve written about the subject of contributing to other people’s plugins before, but I really do believe it is one of the most important things that we, as plugin developers, can do for the WordPress community.
Have you ever opened up someone else’s plugin and then thought “OMG why?!”? I bet you have. Sometimes that reaction is due to the act of witnessing really terrible code, sometimes it’s because of severe logical errors, sometimes it’s because you simply think differently than the developer, sometimes it’s because you simply aren’t privy to the variables and decisions that the original developer had to make in order to account for the problem he/she faced.
I’ll freely admit that I have said “well I would have done that better differently”, but you know what? I have no clue whatsoever a lot of times because I was not there when the code was written.
WP e-Commerce is a really good example of this. The plugin is one of the oldest WordPress plugins, and is the oldest of the e-commerce plugins. When it was first released, there was no such thing as custom post types or taxonomies; custom meta data was difficult to work with; many of the hooks and filters we rely on today simply didn’t exist; WordPress was completely different back then.
The fact that the development team managed to pull of what they did at that time is nothing less than awesome.
When I tell people that WP e-Commerce is one of my preferred e-commerce plugins, they often look at my incredulously and respond with something along the lines of “why?! Have you used WooCommerce/Jigoshop/Shopp?“. My response is simple: “yep, I sure have. They’re all great“.
I personally really like ALL of the major e-commerce plugins. In this list I include JigoShop, WooCommerce, Easy Digital Downloads, WP e-Commerce, and Shopp.
One of the reasons I really like WP e-Commerce is because of their struggles. Perhaps it’s just the part of me that really like helping people, but I empathize a lot with projects attempting to overcome a bad reputation. If you look at the ratings for WPEC, you’ll see they are not exactly the most popular of the e-commerce plugins (if judging on ratings alone).
I should clarify a little: I empathize with projects attempting to overcome a bad reputation when they clearly want to earn a better reputation. If you write bad code and never actually try to improve your project then I have a hard time believing you actually care about your users’ experience. The team behind WP e-Commerce is NOT one of those teams that doesn’t care about improving their plugin. They are one of the most down to earth, caring team of developers I’ve met. They really, really care about their users and customers, and they truly want to make WPEC a kick ass plugin again.
Each new line of code that is added or refactored in WP e-Commerce is beautiful. Gary and Justin are both truly great developers, and it’s really unfortunate that they are burdened with the negative reputation that WPEC has acquired over the last few years.
When I think of WP e-Commerce, I think of all of the great, great new development work that is being done on the project. When many other people look at WP e-Commerce, they simply see the legacy code and compare it to the brand new solutions that have no legacy code.
Have you ever looked back at something you wrote a year ago? Two years ago? Six months ago? Unless you’re the best developer that the world has ever known, I bet you look back and cringe. We all write bad code. WP e-Commerce is the oldest e-Commerce plugin by far, so of course it has some legacy code (a lot of it actually). I have nothing but respect (and a lot of awe) for the development team behind WP e-Commerce because they are taking on the challenge of legacy code and are doing some truly amazing work with it. Some old plugins will stay old because the developers just don’t want to deal with all that shit bad code. I personally have retired quite a few plugins because I did not want to take the time to rewrite them, and they were usually less than 500 lines. Just think of the challenge that is refactoring thousands and thousands of lines of code.
Contributing back to WP e-Commerce is one way that I can help contribute back to a plugin that truly wants to be great again, and a plugin that has contributed immensely to the WordPress e-Commerce ecosystem, as well as WordPress core itself. Did you know that WP e-Commerce is responsible for more core WordPress patches than all of the other e-Commerce plugins combined? Knowing that alone, I feel like the least I can do is give back a little.
For version 3.8.10, which was just released a few days ago, I rewrote the Coupons UI. If you’ve used WP e-Commerce then you probably know that the coupons’ interface has been pretty lack luster for quite some time, and the code behind it was even worse. Since I have several clients that use WP e-Commerce and they have each expressed their frustration with the poor UI, I proposed to Dan Milward that I rewrite it for them.
Over a few weeks, I slowly updated the UI and brought it up to current WordPress standards.
Here are some screenshots of the UI prior to the update:
And here’s the new UI:
To see a comparison of the code behind the coupons’ UI prior to 3.8.10, see here, and to see the code now, see here.
WP e-Commerce is on Github and is very responsive of new patches and suggestions submitted. If you want to give back a little, head on over there.
Thank you for writing this, especially this part — Have you ever looked back at something you wrote a year ago? Two years ago? Six months ago? Unless you’re the best developer that the world has ever known, I bet you look back and cringe…
I’m going to take a look at WP e-commerce. Thank you again!
Nice post!
It’s so awesome to see the developer of a commercial e-commerce solution contribute to other e-commerce plugins. Giving back to WP-Ecommerce and participating in a WooThemes event (WordSesh) shows that you’re passionate about the WordPress community, not just passionate about selling your plugins. It’s awesome and inspirational.
As far as your list of e-commerce plugins, have you used MarketPress before? Is there any specific reason it didn’t make your list of major E-Commerce plugins?
I haven’t used MarketPress, though I have heard some people say great things about it.
Thanks so much for this post Pippin – this kind of feedback means an awful lot to me and the lads!! I’m truly excited about our upcoming 3.9 release. Our goal is to make it more “WordPress-esque” than the rest. I think WooCommerce (or Jigo who I feel for) have made good inroads in this space but I still think there is room for improvement.
Not only did WordPress not have Custom Post Types back when we started but it only had a small handful of hooks and filters, you could pretty much name all the Plugins in the repository and WordPress still had an enable “hacks” option in the settings page because once upon a time there were no Plugins. There was only hacks.
As such a lot of our time has been spent refactoring code and while this has stopped us from being innovative for sometime that is soon going to change. We’ve got a crazy awesome roadmap ahead of us and in the same way that the more recent plugins have been able to benefit from newer WordPress developer features we are now in the same position that they were when they launched and we have every intention to bunny hop back over them in terms of quality code and especially in terms of being innovative.
When we launch 3.9 (or will it be 4.0?!?!) our business will be in a position to grow and launch new products around our new features and around the more obvious gaps in this space. We won’t be quite anymore. We’ll be very loud and very proud. I’m excited about the future and I’m glad there are still old school dudes like Pippin working in this space!!
I can’t wait to see what happens in the next year 😀
Same here mate! What do you think of all the UI improvements Brett is pushing at the moment?
They’re looking great! I wish I had more time to dive into them more.
The last time I used wp e-commerce it was so wretched it was non-functional. At the time I said “Never again”. The next time I need ecom I’ll give it a shot because I trust you.
That highlights one of the things I love about WPEC: drastic change from wretched to awesome. Due to much of the legacy code, there are (and were) parts of the plugin that were truly bad (at least in comparison to other new plugins), but the core dev team is turning those areas around so quickly it’s awesome.
Curious about any updates since you originally posted this. WP e-commerce?
Good example of the power of open source and developer initiative for personal, if not commercial, reasons.
I’m not quite sure I understand your question. Could you elaborate?
Just appreciating your contribution and explanation.
The question mark was my own surprise at choice of WP e-commerce as a favorite, but you explain why and understand.
If there’s anything else, I’m curious if you’ve made any further contributions or have any more insights into the improvements in this product.
I also really enjoy contributing to Ninja Forms: https://github.com/wpninjas/ninja-forms