Adding Software Licensing and Automatic Updates to a Premium WordPress Plugin

While developing a commercial WordPress plugin one element you’ll probably want to add is automatic updates for your customers. They’re used to it from free plugins in the repository, so why not make it an easy transition for them with your premium plugin.

keysWhy software license keys?

To verify each install of your plugin is valid, you’ll need to generate a unique license key for each purchase. Each customer then gets the same seamless one-click updates as you release them. No re-downloading, FTP uploads, or any of that nonsense.

A unique license key can also serve as a check when the customer creates (or you create) an account in your support system. You can take it further and log the sites the plugin and license key are being used on to make sure you’re only supporting the number of sites it’s intended for.

It’s not a requirement to provide a license key or automatic updates for a premium WordPress plugin, but it sure makes support and maintenance easier.

Options for the auto-updater only

Developing your own auto-updater and license key system was the most popular way up until there was a few more options in 2012. Quite possibly still the most popular.

If you’ve already established a purchase and delivery system for your plugin, and you don’t mind adding a license key generator yourself, here are a few sources to get the auto-updater working.

A Guide to the WordPress HTTP API: Automatic Plugin Updates by Abid Omar – This is a pretty extensive WP Tuts tutorial complete with screenshots and source files.

TGM Updater by Thomas Griffin and Gary Jones – This project on Github never reached 1.0, but it’s a great code base to start with.

Auto Hosted by David Chandra (reviewed on WP Daily) – I just ran across this recently. This is a premium plugin but you get something a little more polished, documented and with support.

Plugins for the complete package: Purchase, delivery, license key and auto-updater

Since I was in the market for a complete premium plugin package (digital delivery plus a license key and auto-update system), I turned towards the e-commerce plugins that provided all of this along with good documentation and support.

At this time, I only know of two.

Easy Digital Downloads + Software Licensing Extension

This is what I went with when I launched Pinterest “Pin It” Button Pro in the fall of 2012. I was fortunate in my timing in that EDD + SL was out there to use even though it was fairly new. There were a few technical issues along the way, but the products have matured a ton since release and I get fantastic support from Pippin and crew. There is extensive documentation and code snippets on how to integrate with your commercial plugin.

WooCommerce + Software Add-On

If EDD + SL didn’t work out for me I would’ve tried out WC + Software. I love the themes and plugins over at WooThemes and you can’t deny the widespread usage of WooCommerce in the WordPress e-commerce space (digital goods or not). I’d love to hear if any plugin shops out there are using this setup and how they like it. They have documentation for the add-on and I know their support is great.

Hosted complete package solutions

Updated October 2017

Using a hosted solution to help you issue software licenses for your premium WordPress plugins, as well as handle automatic updates for your users, can save quite a bit of time. Managing and controlling all of your users’ licenses from a dashboard can make life so much easier and convenient.

One service built specifically for WordPress plugin and themes is Freemius, which is pretty easy to integrate into your plugin. It lets your free users upgrade their license directly from within their WordPress admin dashboards. You can still sell licenses from any website like you normally would with premium plugins, but all using the same WordPress software licensing service. What’s nice is that their premium plugins update mechanism is that it mimics the official WordPress plugins update technology, enabling a super smooth updating process for your customers.

The below solution is currently on hold indefinitely.

SellWP is the “easiest way to start selling your WordPress themes and plugins.” It’s a brand new hosted solution right around the corner and comes from John Turner, the developer behind the Coming Soon Pro plugin.

You’ll still set up your marketing website as you normally would, but this solution provides the rest for you (yes the purchase, delivery, license key and auto-updater).

If you’re interested go check out the new video and sign up on the launch list over at SellWP.


  1. John Turner on July 25, 2013 at 12:29 pm

    Awesome post Phil! Thanks for covering SellWP. Hopefully I have it available to the public soon.

    • Phil Derksen on July 25, 2013 at 2:46 pm

      Thanks John. Looking forward to trying out your service.

  2. WPSpeak on July 25, 2013 at 12:58 pm

    Ultimate resources you got here. I knew the SL extension by EDD and WPSell, but never heard about the others. Time to try few of them, especially the WooCommerce Add-on.

    • Phil Derksen on July 25, 2013 at 2:47 pm

      Thanks. If you do try them out please let us know what you think or post back here.

  3. Larry Kokoszka on November 20, 2013 at 7:05 pm

    Phil – We’re using the WooCommerce extension (to sell WooCommerce extensions, actually). It does not, out of the box, handle auto-updating of WordPress plugins, but it gives you a good base to work with so we were able to get it to play nicely with the WordPress API. Surprisingly, WooThemes does not (this is rumored) even use this extension on their own site.

    When you buy a license from WooThemes, you select the number of activations you want on the product page. With their extension, however, you can’t do this. It does not work with variations out of the box. So if you want to sell a single license, a 5 license package and a 15 license package, it does not seem possible. (Without extra code).

    But, as with most of their stuff, the code base is good. They give you good controls over activations and license keys, a way to offer upgrades (this part is a bit clunky, but works). I recommend it overall.

    • Phil Derksen on November 21, 2013 at 9:01 pm

      Thanks for the info Larry. Good to hear from someone using it.

  4. AdrienG on December 5, 2013 at 6:50 am

    Thanks Phill,
    great article. I couldn’t find the info so I have a question. Do you know if Easy Digital Downloads + Software Licensing Extension would enable me to upload my own generated keys?
    Thanks for your help

    • AdrienG on December 5, 2013 at 8:45 am

      To be more precise my back-office already generates our own keys. This is why the best for me would be to be able to upload a list of keys generated by our back-office. Is that possible?

  5. Todd Lahman on December 13, 2013 at 12:19 am

    Just thought you’d like to know about the WooCommerce API Manager, which does software activations/deactivations, and both plugin and theme automatic updates. It will have a ton more features in version 1.3 coming out in December 2013.

    Here’s an example of how I use the WooCommerce API Manager to sell WordPress plugins on my site:

    • Phil Derksen on December 13, 2013 at 7:59 am

      Thanks for chiming in Todd. Looks like a great plugin! Just signed up on your list to get updates.

  6. Bob Tolbert on January 16, 2014 at 4:01 am

    These is another solution at it’s monthly base fee and it’s working like Auto Updates plugin but it give you more statistical information and multiple versions management

  7. Dave Bricker on March 15, 2014 at 4:06 am

    These solutions are all functional but they all violate WordPress’s GPL licensing requirement. Under GPL, you cannot restrict the functionality of a plugin to non-paying users. There are workarounds but they’re complicated. License managers are great but be clear about what’s legally licensable and what’s not.

    • kuus on March 2, 2015 at 3:33 am

      Sorry but this is not true GPL allows this.

    • John Rothko on February 22, 2016 at 5:03 am

      It is well known that WP hates commercial projects, but that doesn’t mean they violate rules. GPL allows selling commercial plugins as Kuus already indicated.

  8. Ayebare Mucunguzi on June 27, 2014 at 4:51 am

    Hi Dave, I believe licensing in this case is for managing subscriptions, when the licence is expired, the software keeps working but there is a restriction to getting new updates. is very promissing.

  9. Corrado Izzo on October 7, 2014 at 2:30 am

    Thank you very much for this Great Article Phil.

    One question i got for you is how is code protection handled by all these solutions that are suggested here? How do these solutions/extensions work when generating a licensing key?

    Do they also encrypt the code in the theme and plugin or is that something that has to be done beforehand?

    What’s the best practice here?

    • Phil Derksen on October 7, 2014 at 8:01 am

      Hi Corrado. I’ve only been using Easy Digital Downloads software licensing since this post, so I can’t speak to the others, but you should be able to find all these details at (affiliate link) and also by contacting the vendor. Hope that helps!

  10. Caroline on January 27, 2015 at 11:21 am

    Don’t buy the WooCommerce Software Add-On extension; consider the Woocommerce API Manager. The Software Add-On is no longer supported as of WooCommerce API Manager version 1.3.4, and the API Manager is much more robust.

  11. Muhammad Arslan on June 27, 2015 at 1:14 am

    Hi Phil, thanks for sharing such an informative article with us. I have a question regarding TGM updater plugin. I want to build a custom Plugin’s options page where I will list all my Pro Addon/Extensions. and this options page will be bundled with all my free + pro plugins. A screenshot has been attached of an options panel and I want a similar one.

    I want users to install and update those extensions right from the options panel. Can TGM updater be used for this purposes with AJAX install/update support?

    • Phil Derksen on July 8, 2015 at 9:46 pm

      I’m not sure if it can be. I never used the TGM updater extensively, and a lot of the updater options have changed since I posted this.