Patrick's Programming Blog

Adding Fuctionality to Lean Plugins

Storage Unit
  1. Blogging for Benjamin Competition
  2. Why I'm Grateful to Work on the Web
  3. 24 Pull Requests
  4. Update Downloadable Product's Expiration Date in WooCommere
  5. Get Lost in the Flow and Work for More Than a Salary
  6. Why A Plugin's Popularity Matters
  7. Why You Should (Or Shouldn't) Use Premium Plugins
  8. WooCommerce Terms & Conditions
  9. Only Ship to Continental United States with WooCommerce
  10. Just Talk
  11. Why I Love Jetpack
  12. Making Jetpack Better
  13. Remove Billing Address for Free Virtual Orders in WooCommerce
  14. Notify Admin of Customer Address Change in WooCommerce
  15. Open Your Self Up To New Possibilities
  16. 2013 Resolutions Review
  17. Create a Community
  18. Tips for Starting a Community
  19. The Intent of Goals
  20. Create The Ultimate Invoicing System Using WooCommerce
  21. Change From Address in Ninja Forms
  22. Work With People Who Inspire You
  23. Contact Form 7 & MailPoet Integration
  24. Monotasking
  25. Giving Back to The Community
  26. Adding Fuctionality to Lean Plugins
  27. Choose Stripe For a Payment Gateway
  28. A Dip Into Entrepreneurship
  29. Reward Yourself
  30. Blogging for Benjamin Plugin
  31. Blogging for Benjamin Wrap Up

I'm a big advocate of lean plugins and I think we've done a stellar job removing unnecessary bloat from WooCommerce 2.1. The brilliance of having multiple plugins to add only the functionality you need reduces the number of bugs, keeps everything separated for easy updates, and perhaps most importantly creates a clean & intuitive admin interface.

There is of course a huge demand for customizing the behavior of WooCommerce (or any plugin). So where do you put that functionality? Do you put them in settings pages, extra plugins, snippets, tutorials, or something else? There's a few options to choose from and while none of them are perfect there are a couple of clear winners.

Where to Add Extra Functionality

Whether you're removing existing functionality or thinking about adding new functionality the hard part is deciding where to put that extra functionality. With WooCommerce 2.1 we decided to release the removed functionality as free plugins so every user can easily access them but I'm not convinced this is always the best choice.

Create Free Plugins

The most user friendly way is to create free plugins. This way any users who want that functionality can install the plugin and it's right there. No custom coding and easy updates.

Create Premium Plugins

The only real downside of free plugin is that someone has to maintain them. For every plugin you release you need to maintain it by spending man hours answering support questions and keeping the plugin up to date. So for each free plugin you release you need to make sure that it's enhancing your premium products or services and making enough money to justify the time commitment. If you don't think it will justify the time commitment that's when you need to make it a premium plugin.

Create a Snippet

Snippets allow a developer to quickly and easily change some functionality on a site without cluttering up the admin interface. This is really great for very specific settings but they're hard for your average user to implement, they can't be easily updated, and they're hard to find. I tend to only create snippets when adjusting the value or a filter.

Create a Tutorial

Tutorials are actually a really great way to share some highly customized piece of functionality. Like when you want to customize a checkout you have no idea which fields the user will want to remove or modify so you just tell them how to do it. The downside is that this is pretty hard for your average user to implement. But the good news is that if there's enough demand for this sort of functionality you can always create a premium plugin. This is what WooThemes did with the Customizing Checkout Fields tutorial which was later followed by the Checkout Fields Editor.

Create an Unofficial Tutorial

An unofficial tutorial is something you would publish on a site (like this) that doesn't have an official stamp of approval. You don't need to support the tutorials posted on your own site. I often do help users who leave comments on the blog but I don't have to. That reduces your support costs which allows you to do more work or create yet more tutorials.

Some of my favorite examples on this site are:

Which Method Do I Pick?

Well honestly each of these have their place. I don't think any company should use just one method to the exclusion of all else. At WooThemes we actually have a mix of all of them. I would like to move towards a model where we have a better library of snippets which we could release as plugins (far easier to setup) and I'd like to remove some of the complex tutorials that some users get stuck on.

Photo Credit: bump via Compfight cc

Exit mobile version