I was thinking about what my next plugin project would be the other day, and it got me thinking about the WordPress plugins I have already developed. Why did I spend all that time and energy creating something from scratch – especially when in some cases there were existing plugins that did something similar to what I wanted to develop. What motivated me to develop those plugins versus making an existing plugin work for me?
Scratching an Itch
At WCUS, Pippin Williamson spoke about how many of the plugins he’s developed were “scratching an itch”. That’s a great way of putting it, and I think that’s a pretty fair description of why I also have developed the plugins that I did.
In my case, I found a few common themes that went along with the plugins I have developed.
- Repetition: When I found myself doing the same thing over and over again, I tend to package the solution in a plugin. That way I don’t ever have to copy/paste code into a site’s functions.php file or create another custom plugin. What’s the point in doing that when I already know there’s a solution available?
- Automation: When I developed WP-CRM System, I was already using another third party CRM. One of the things this other CRM lacked was a way to automatically populate my list of contacts with data from some sort of contact form, etc. I hated wasting time manually entering data that was already entered in once before.
- Convenience: Some of the plugins I have developed weren’t necessities, but they were more convenient to have than not. For example, Shortcode Lister is a simple plugin that lists out all of the shortcodes you have available to use on your site. It helps users remember what shortcodes they need to use on their page/post. It’s convenient, but definitely not necessary. The same goes for Unused Shortcodes, which is a plugin that searches your pages and posts for any use of a certain shortcode. It’s convenient to know whether or not you are using a particular shortcode anywhere on your site before deactivating a plugin. The last thing you’d want to have is a landing page with a broken lead form when you decided to switch contact form plugins. Judging by the whopping combined total 250 installs between the two plugins, I’m probably in the minority of people who find these convenient.
- Optimism: I know that not all of my plugins will be big successes. As a matter of fact, as of right now only three of my plugins have over 1,000 active installs and most aren’t even at 500 installs. While my plugins aren’t in use on millions of websites, I’m optimistic that some of them will gain some traction soon.
Of course, there are other reasons that led me to create the plugins I’ve developed. At the end of the day, nearly all of the plugins I developed were scratching my own itch.
For example, my family ran a golf tournament for a few years to raise money for a fund that honored my brother who was killed in Afghanistan. I used WooCommerce at the time to have the golfers register for the tournament, but also to sell other fundraiser items like shirts. That site presented me with a few challenges:
- We needed to know names of everyone who was registering to golf. One person may register and pay for multiple people on the website, and in the traditional WooCommerce checkout I would only receive the customer’s name but no one else in their group.
- We had a banquet dinner after the golf tournament where non-golfers could attend. This was a great way for family and friends who didn’t golf could still participate. However, I ended up with the same problem as with the golf registrations. When one person paid for several people, we don’t know who they intended on paying for.
- We never knew how many people would be paid for with each order. Someone could be paying for a whole foursome and several banquet attendees, or they could just be paying for themselves. We didn’t want extra unnecessary fields on the checkout page.
- Not every order on the site would require names. We sold shirts and other items on the site. Some were to be picked up on the day of the tournament, and others would be mailed to the customer.
TL;DR we needed to collect names for each registration but didn’t want to have unnecessary fields on the checkout page.
To accomplish this, I created Conditional Checkout Fields for our site, which eventually evolved into a commercial plugin. This plugin allowed me to display a number of fields on the checkout page depending on (a) what “products” were in the customer’s cart, and (b) the quantity of those products.
So if a customer bought 3 golf registrations, there would be 3 fields on the checkout page asking for each golfer’s name. If they bought 2 golf registrations, and 3 banquet registrations, there would be 2 fields for golfer’s names and 3 for the banquet names.
We would end up with close to 300 people in attendance each year. This plugin saved me countless hours of emailing back and forth trying to figure out exactly who was attending.
I’m not done developing plugins. I’ll continue creating plugins that scratch my own itch, and look for opportunities to help solve the needs of other WordPress users.
If you have developed a plugin, what inspired you to create it? Was it a personal need, or did you see an opportunity to solve a problem that wasn’t being addressed?