What It Takes to Build a WordPress Plugin

What it takes to build a WordPress plugin: good development practices and happy customers

A lot of steps go into building a WordPress plugin. I’ve released many premium plugins, free plugins, and even one plugin in the WordPress.org repository.

Today I thought I’d talk about what it actually takes to build a plugin, whether it’s free or paid.

First you have to have an idea

Even just having an idea is tough! If it’s a free plugin then you can pretty much just release whatever you want. If it’s useful to you, then package it up into a plugin and give it to others. Even if no one wants it, it’s not a huge deal because it’s free.

But if you’re thinking about building a premium plugin, then you need to do market research first.

Is this a plugin people actually want?

  • Do you know people who have a problem?
  • Can you solve that problem?
  • Will people pay to have that problem fixed?

You need to know that your audience and market is there before you spend hours/days/months/years building your perfect plugin.

Build the actual plugin

Once you have a good idea, you can spend time building the actual plugin. Depending on what you’re making, it can be a quick process, only taking a few hours or days, or it can be a super long process and take weeks, months, or even years.

Plan ahead!

When creating your plugin, you need to think about structure and how everything will fit together. It’s important to think about this BEFORE you actually get started, otherwise you’ll just keep piling code on top of code.

I had that problem with the Ultimate Book Blogger Plugin. I knew what I wanted the plugin to do, but I didn’t look very far into the future. So as the plugin grew and changed over a few years, I just piled more code on top of it. Now, years later, the code is pretty messy. That’s why my big project right now is re-building UBB from the ground up. I’m doing a much better job planning the plugin and thinking about how it might grow into the future.

Testing (internally)

A huge step is testing the plugin internally. By that I mean you—the developer—running some tests on your own. A few tests would include:

  • Coding with debug mode on. This is so you can be aware of any coding warnings/notices/errors on your part.
  • Testing with some popular plugins/themes to make sure they’re compatible.
  • Trying to anticipate what your users might do, by trying a variety of settings combinations and usages to ensure that everything still works.

You can get a lot done testing the plugin yourself, but usually you know how things are supposed to work, so you tend to do them a certain way. Often times the users of a plugin WON’T know how it works so they might screw up the settings or do things unexpectedly. You have to be prepared for that.

…which leads us to…

Testing (with other people)

This is when you give the plugin to other people and let them rip it apart!

It’s important to get feedback in a few different areas:

  • Things that are actually broken (coding problems)
  • Things that work but are unclear (UX/instructions problems)
  • Things that aren’t included in the plugin, but they would like to see

Find a way to deliver updates

This is only applicable if you’re not submitting the plugin to the WP.org repo for free. You need a way to send updates to your customers directly inside WordPress. No one wants to have to go back to their account page, re-download the plugin, uninstall it from their site, and re-install it all over again.

They want updates inside WordPress and automatically.

I use the Software Licensing extension for Easy Digital Downloads. It’s well worth the $82! That’s an affiliate link, but I love this product and use it on my own shop!

Write documentation

Some plugins are very straightforward and don’t require a huge documentation page. But the more complex your plugin is, the more people will need guidance on how to use it. You’ll want to provide your customers with instructions such as:

  • How to install the plugin
  • How to configure the settings and what the settings do
  • How to use the plugin itself

Be prepared to offer support

This is particularly true if you’re releasing a paid plugin. No one wants to dish out money for a product and then NOT get help and support when they need it. If you want a successful business, this is something you must offer to your customers.

There are two main ways you can provide support: through a private ticket system, or though a public forum.

You also need a clear set of terms that dictate what you will provide support for and for how long. Example:

  • You will provide help installing and configuring the plugin.
  • You will not provide help for customizing the plugin or changing its code.
  • You will not provide support for other plugins that are conflicting because those other plugins do not follow proper coding standards.
  • You will offer support for up to one year after the purchase date. Support can then be renewed after that.

Creating a plugin is a big job

But it can also be very rewarding (and profitable!). I think the single most important thing is keeping your customers happy. Offer solid support, treat them well, and they will appreciate it. That’s they key to repeat business and excellent word of mouth sales!

Do you have any experience buying or selling plugins?

Photo of Ashley
I'm a 30-something California girl living in England (I fell in love with a Brit!). My three great passions are: books, coding, and fitness. more »

Don't miss my next post!

Sign up to get my blog posts sent directly to your inbox (plus exclusive store discounts!).

You might like these


  1. Very unique and good read! I’ve wanted to learn more about building WordPress themes+plugins. I’ve wondered how other people have offered the whole support ticket thing. Thanks for giving the heads up on the awesome support plugin.

    Support is a very critical and delicate thing. I’d imagine it would get bothersome and time-consuming to have to constantly respond and resolve support questions (especially when there are more pressing things to do). There is a happy medium to strike with offering support! It’s weird whenever a person releases a plugin and then they’re like “Sorry, I don’t offer free support. Bye.” and people are left wondering how to navigate the plugin, get frustrated, and end up not using it. Not so good! Haha.

  2. Thanks for taking us behind the scenes!
    It is a LOT of work. What an understatement.

    I’m interested in UBB but I’m only reviewing books in one genre — Kid Lit.
    Therefore, “Reviews by Genre” won’t work.

    I want to use tags like “genre” in my blog.
    For example, there would be “bilingual/multilingual,” “adopted,” “single parent family,” “addresses social class issues,” “addresses racism,” “mixed family.”

    Amazon groups a lot of childrens books that don’t have white middle class protagonists into “multicultural.” It takes HOURS for me to find a book that fits my needs. It also doesn’t help that LESS than 12% of American children’s books published each year feature non white protagonists.

    Is there a way for bloggers to sort books by our tags automatically? This plugin is really appealing because it sorts books and indexes them automatically.

    1. so for example…

      It might be…

      Reviews by Author
      Reviews by Date
      Reviews by Eva’s Tags
      Reviews by Publisher

      I’m just throwing ideas out there. It’s like a recipe index but more customizable.

    2. Just because it’s called “Genres” in UBB doesn’t mean you have to use it as such. There aren’t pre-defined genres listed for you to select from. You add your own (much like you would categories). So you could add things like “Adopted”, “Single Parent Family”, etc. and use those as your “genres”. 🙂

Recent Posts

    Random Posts