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:
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.