9 Things We Learned From Launching Our Second WordPress Plugin

Back in 2016, I wrote a post about what we learned launching our first WordPress plugin. A lot has changed since then and I thought it would be interesting to share with everyone what my brother and I have learned from launching our second WordPress plugin. Let’s just say, we encountered completely new obstacles along the way. 😉 Hopefully, some of you developers out there will be able to relate with a few of these or perhaps you’re currently struggling with similar issues.

What We Learned Launching Our Second WordPress Plugin

In June 2016 we launched our very first plugin, wp coupons. It was essentially something we had built ourselves already and was using on a few of our own sites to increase CTR and affiliate conversions. We saw great success with this and so we decided to launch our second plugin, perfmatters. Again, this was something we already kind of had hacked together over time and was using across all of our sites, so why not develop it further and sell it?

Check out below some things we learned and some insights to take away, especially if you’re a WordPress plugin developer.

  1. Running Ecommerce on WordPress is Expensive
  2. Do Your Market Research
  3. Moving to Recurring Payments
  4. I Hate You PayPal IPN
  5. Adding Stripe
  6. With More Plugins Comes More Support
  7. Refund Policy is Tricky Business
  8. Wait to Update WordPress Plugins
  9. Think Outside the Box

1. Running Ecommerce on WordPress is Expensive

Over the past couple years the developers of both WooCommerce and Easy Digital Downloads have been raising prices (Some parts of EDD went up by over 250% 😨). As mentioned in our first post, we use Digital Downloads for all of our stuff. It works great and we love it. Pippin is definitely the man! However, prices for these ecommerce solutions are not cheap by any means. Here’s the cost of premium plugins/extensions we’re running:

That’s a total of $936.00 per year, just to keep our plugin shops operating. Doc’s response pretty much says it all. 👇

Doc's response
Doc’s response (Img src: imgflip)

And that doesn’t include some other third-party premium plugins we’re using, that’s just the ecommerce related ones. Fortunately, we’ve been doing this a while now that the investment makes perfect sense and EDD definitely pays for itself. However, for those just starting out the cost of single licenses is pretty darn expensive! (In November 2017, EDD launched their all access pass for $899.00, which we might be taking advantage of.)

And if you look over at WooCommerce, it’s pretty much the same. All the premium extensions are going to cost you, especially if you’re just starting out.

2. Do Your Market Research

When we launched our first plugin, wp coupons, we simply did it because we started getting a few requests about what we were using on our own site. We didn’t do any market research, think about the niche, or anything. We did a little research on the current competition and that was about it. We did it wrong!

The reason I know we did it wrong is due to looking back at our sales for 2017. I won’t reveal exact numbers of course, but lets put it this way:

Plugin sales distribution
Plugin sales distribution

Our total sales for perfmatters in 2017 was over 2x that of our wp coupons plugin, and it wasn’t even running for the entire year. This is simply a good reminder of why you should spend some time and think about your niche when launching a plugin. How many people would use it? How popular is the space? What is the long-term viability of the plugin?

Now obviously there are a lot more people that want to speed up their sites than there are those running coupons for affiliate programs. So that is a pretty obvious example. But you should always do your research! We actually love working on both the plugins, so we really don’t mind that one is outselling the other. However, if we ever launch a third plugin, you can bet we’ll do a lot of research beforehand.

3. Moving to Recurring Payments

I keep tabs on a lot of people in the WordPress space and Scott Bolinger (co-founder of AppPresser) is one of them. He launched his Holler Box plugin last year and I regularly read his blog. I strongly encourage any WordPress developers to subscribe to his newsletter. He shares some great tips! In one of his posts on EDD, he mentions: “The best way to create sustainable revenue for your business is with recurring renewals.”

This wasn’t the first time I’ve read this. In fact, almost every plugin and theme shop in the WordPress industry has been moving to the new recurring model. If you’re spending time updating your plugins each month, as well as offering support, which we do for both our plugins, then it really makes financial and logical sense to go with the recurring payment model.

Enabling auto renewals is easily one of the best financial decisions we have made. — Pippin (year in review)

  • In 2017 we pushed out 18 updates (fixes and new features)for wp coupons
  • In 2017 we pushed ou 13 updates (fixes and new features) for perfmatters

So for both of our plugins, we’re already pushing out more than 1 update per month, which is great. That was our goal. So after some deliberation, we decided to move to the recurring payment model. This was about half-way through 2017. By doing this, you’ll definitely see some customers simply cancel right after they purchase, but those that don’t will definitely make up for it. And this way you can focus more on developing and re-investing into your products over time.

And I can tell you 6 months in after making the move, we wish we would have made it sooner, as this truly is a better way to build passive income. 👏 Thankfully, EDD makes this super simple. You just install the Recurring Payments extension and you’re good to go. You don’t have to worry about messing up older purchases, as they will still be able to renew like they had previously.

Passive income
Passive income (Img src: Meme Generator)

4. I Hate You PayPal IPN

We were a little confused at first when we launched our recurring payments with PayPal, having two different sites. According to EDD’s documentation, you have to have a unique IPN URL for each store. But PayPal only lets you have one IPN URL. This is a big problem! Unlike Stripe, which lets you add as many unique API URLs as you want. Why PayPal, why? 😡 So we had two EDD stores, one PayPal account, and one IPN URL. How would this work?

We tried actually a few things. The first thing I did was actually chat with EDD support. Unfortunately, they simply confirmed that yes you need a unique IPN URL for each. I already have a personal PayPal account and we then have an LLC PayPal. But you can’t open multiple business PayPal accounts. My brother and I were curious what others were doing, as we can’t be the only ones with multiple EDD shops needing a unique IPN URL for each.

Confused (Img src: Make a Meme)

We then started looking at some other third-party alternatives such as an IPN server. Basically, you create forwarding rules for PayPal IPN notifications so that you can have IPN data sent to multiple IPN listeners at once. This resolves limitations with PayPal’s IPN configuration where they only provide a single URL for an IPN listener.

But before we tried the above, I figured… I might as well try asking in the EDD Facebook group. And thank God I did! (see full thread). Chris, one of EDD’s developers responded. If you read this Chris, thank you.

2 EDD stores, one PayPal IPN
2 EDD stores, one PayPal IPN

And there you have it! This actually goes against what their own EDD documentation says, and what their support told me. Thank God for FB groups. 😁 We ended up testing this and EDD does indeed overwrite and send in the IPN callback URL. Or rather, it is attached to the subscription.

5. Adding Stripe

I’m a huge fan of Stripe myself and we decided we wanted to offer both on our EDD sites. The cost is really about the same as far as transaction fees go. It was super easy to setup, all it took was purchasing the Stripe Payment Gateway extension. Here are a couple reasons why Stripe rocks over PayPal:

  • With Stripe you can easily set up as many sites as you want with their API. There is no stupid unique IPN URL like with PayPal. In other words, Stripe cares about developers.
  • Stripe auto deposits into your bank account every 24 hours. Hooray! 👏
  • Stripe’s reporting is miles ahead of PayPal.
  • Stripe helps combat any fraud purchases for free.
  • I haven’t had a single issue with Stripe, ever! Don’t get me started on PayPal. The above problem is just one of many that I’ve encountered over the years.

With that being said, it can be handy to run both. Some of our customers have preferred to pay with their existing PayPal balances. About half of our customers pay with PayPal, the other half with Stripe. Why not try and capture as many people as possible?

Offer both Stripe and PayPal
Offer both Stripe and PayPal

6. With More Plugins Comes More Support

In our post from last year, we mentioned the importance of providing documentation. This becomes even more important with two plugins. Spend time writing up docs for everything. Trust me, it will save you a ton of time in the long run! Even if its just helping people in emails by linking to it. Screenshots, steps, etc… all help close your tickets faster. And those DIY people, you’ll then probably never hear from.

I love writing technical documentation, so I actually enjoy this part. But I know a lot of you won’t. 😉 But do it anyways.

The other thing we mentioned last year also comes into play, and that is you’re going to get feedback. But don’t say yes to everything. Take some time and determine if the request adds value to your plugin, how long it might take to develop, etc. With two plugins, the word “NO” becomes even more important.

But feel free to take advantage of each situation. Below is an example of how I treated one recent feedback request. The customer wanted to move the CSS into the footer on our wp coupons plugin. Generally, CSS is put into the header, otherwise, you’ll run into flashes of unstyled content. However, instead of just saying “NO,” we decided to turn it into a tutorial on our site. This helps with SEO, still makes the customer happy, but doesn’t compromise what we don’t want in the plugin.

Feedback request
Feedback request

We also have a roadmap, or what we call a feature request page on each of our sites.

This allows us to keep track of everything and share it with others to let them know this is coming or is under discussion. A lot of companies are also using Trello for their roadmaps, but being an SEO guy, I always prefer content of any kind on my own sites.

7. Refund Policy is Tricky Business

A refund policy is a tricky business when it comes to selling WordPress plugins and themes. Why? Because someone can buy your plugin, request a refund, and then they still have your files… they just won’t get support or updates without the license key. I’ve discovered there is a lot of abuse in the WordPress community (don’t even get me started on those GPL clubs 😠), and therefore we ended up changing our refund policy. A lot of ours is inspired by EDD’s own refund policy.

We firmly believe in and stand behind our plugin 100%, but we understand that it cannot work perfectly for everyone all of the time. If you are unhappy with your purchase, or you have an issue that we are unable to resolve that makes the system unusable, we will be happy to consider offering a refund.

Refunds will be offered at our sole discretion and must meet all of the following conditions:

  • You are within the first 30 days of the purchase of the plugin.  After 30 days no refunds can be processed.
  • Your issue(s) comes from not being able to install the plugin properly or get the plugin to perform its basic functions.
  • You have attempted to resolve your issue(s) with our support team.
  • Issues caused by 3rd party plugins, themes or other software will not provide grounds for a refund.
  • Refunds do not apply to product upgrades or annual renewals.

Please note that by purchasing the plugin, you agree to the terms of the refund policy. To submit a refund request, please contact us.

While this is slightly harsher than some other refund policies, it keeps away the bad customers. If you stand behind your plugin as a developer don’t be afraid to firm with your refund policy. Many of us spend many late nights building our plugins, so don’t let people take advantage of you.

8. Wait to Update WordPress Plugins

While I love Easy Digital Downloads, even they aren’t perfect. And that’s why I recommend waiting to update your WordPress plugins, even if it’s just a week or so. Why? Because shit breaks. And if you’re as busy as I am, you need to find ways to save as much time as possible (note: I have a full-time job, and this isn’t it 😉). I’m all for helping other developers test bugs, but not when I have to stay up all night.

EDD pushed out an update on December 20th, 2017 which caused PayPal recurring payments to start failing (being marked as incomplete). I updated our extension on the 25th of December (Christmas) and orders started failing immediately across both our EDD sites. That day I had to check PayPal payments and manually mark them complete in EDD. I chalked it up to perhaps PayPal IPN service having issues, but the next day I realized it was due to an EDD update (and a pretty bad one in fact… as it broke all PayPal payments).

EDD recurring payments changelog
EDD recurring payments changelog

But the above is a great example of why I wait. Otherwise, I would have had six whole days of customers having issues, me trying to debug what was causing the failure, etc.

9. Think Outside the Box

The final thing I recommend people doing is to think outside the box when it comes to generating sales. The WordPress marketplace is crowded beyond belief, so every little extra thing you can do to stay ahead helps.

Earlier in 2017, I discovered Jilt, which is a service that will allow you to automatically recover abandoned ecommerce orders. You’d be surprised how many of your customers just stop, drop, and roll. Once you set it up, you literally never have to touch it again! And you’ll instantly start seeing more profit.

How well does it work? Take a look for yourself. This is a screenshot straight from my Jilt dashboard. I have only been running this for the past 30 days on my perfmatters site. And as you can see, it is running at a 42.9% recovery rate! But wait, the best part is… at this volume, I don’t have to pay Jilt a dime! 👍 That’s right… no fees and I’m in the free tier.

Jilt recovered orders

So basically right now Jilt is essentially giving me free money! Unless your Bill Gates, I’m pretty sure you’d take some free money. Now of course, once you get into higher sales volumes you’ll need to pay a little… but there pricing is incredibly fair. The beauty of their pricing is though that you won’t pay anything for low volume. So it’s perfect for those just starting out.

Free money
Free money (Img src: Giphy)

Check out more in my in-depth Jilt review. I highly recommend all EDD and WooCommerce shops to start running this right away!


As you can see, there is a lot more that goes on behind the scenes of a WordPress plugin or theme shop. Trust me, I have so much more respect for developers than I did a year or two ago. For WordPress developers to succeed, you don’t just need to be able to write code… you need to know how to market, keep customers happy, troubleshoot new problems, come up with creative solutions, and constantly innovate to stay ahead.

Hopefully you found something insightful in what we learned this past year. If you’re a developer or someone thinking about selling a plugin or theme I would love to chat. Feel free to drop your comments below. 👇

Get More Stuff Like This

Marketing, WordPress, Blogging Tips, SEO and Reviews, twice a month.

Thank you for subscribing.

Something went wrong.

Brian Jackson

Co-founder at forgemedia. Blogger and entrepreneur obsessed with SEO, marketing, and web performance. Connect on Twitter @brianleejackson.

18 thoughts on “9 Things We Learned From Launching Our Second WordPress Plugin”

  1. Good article Brian, I always appreciate when entrepreneurs share their experience; especially when the business is close to mine. I’ll take a look to Jilt for sure :)

    • Thanks Eric! Ya, I highly recommend checking out Jilt. You can literally start for free and just scale as you go. Pretty much a no-brainer.

    • I recommend Jilt too, very easy to add for EDD and the support is great.
      You just need to register on their site, install the addon for EDD and you good to go :)

  2. Thanks for your sharing your experiences!

    I’m also using Stripe with my invoicing software (Pancake app) and they actually have an option to take a payment from a credit card when the card has been used previously to pay an invoice.

    That could perhaps mean that you don’t need the recurring payment addon as Stripe seems to offer that functionality already?

    • Hey Piet,
      Ya, I need my orders to sync up with my EDD software, that’s why I have to use their extension. Because EDD automates things such as sending out emails letting people know their licenses are about to be renewed, etc.

  3. Brian,

    Humbled that you are including us in your article to increase sales with EDD on your plugin sites! We are super excited to hear about your success and look forward to releasing new features to make Jilt even better :)

  4. Thank you, Brian, for sharing your experience. Your article is one more point to reconsider our refund policy, as it’s really difficult to control honesty when your product is digital. :)

  5. Another great review Brian, kudos. I’m glad you pointed out the EDD uptick. I don’t blame Pippin either; I’d much rather see that then him turn into another Woo and collapse under the weight of his own success.

    I can second the annual renewal business model. It’s simply win=win for everyone involved. It provides means for the dev to continue supporting and improving the product and I’ve found users are typically more engaged when it’s a renewing fee structure. The pay you pennies on the dollar plugin market along with the one and done old-school dev firm approaches are on the way out.

    I’m curious to know more behind your decision to opt for what looks like a straightforward contact form for support as opposed to something like bbpress or a third party platform.

    • So since there is just two of us Drew, email still works good for us. But we do have a probably unique setup in place. For example, we have one main email that our contact form goes to. This is sent to both myself and my brother. We then both have the main email set as our main alias (https://kinsta.com/knowledgebase/free-smtp-server/). So when we send out they see our main email. We then BCC each other so we can see each other’s responses. No matter how they customer replies, it always routes to our main email.

      We have thought about ticket systems, but we respond very fast and also have pretty good email systems in place. I use Gmelius to basically take my Gmail to another level. Also, a ticket system would be yet another thing we have to manage/update. Less is better for us.

  6. Thank you for sharing the lessons, Brian. The refund policy and waiting before updating plugins undoubtedly resonate most with me.

    I also agree that every plugin developer should use the subscription model for their pricing. That’s our plus compared to theme developers.

    • Glad you liked it Elena! Yes, refund policies can be a tricky one. And 100% agree the subscription model is the way to go.

  7. These are really big eye openers to the rest of the WordPress world. I like how this article was transparent in mentioning how difficult it can be, but was titled as a ‘learning experience’ which is true!
    I’ll save this article for when I build a plugin again for a client. And if it’s a feature most people don’t have, then release it to the public WordPress plugins directory! 😀😀

    Kind regards,


Leave a Comment