Software Licensing


Software Licensing for Easy Digital Downloads provides a complete license key generation, activation, and checking system. It allows you to provide license keys along with your digital products that can then be used to properly license and activate the buyer’s copy of the software. Whether you are selling WordPress plugins, themes, or any other kind of software, including video games and desktop applications, the Software Licensing add-on will become a huge asset for you that also helps to take your business to the next level.

The licensing admin

The licensing admin

With a complete API that can be used for activating, checking, and validating license keys, this is the perfect addition to any digital store selling software, whether that software is WordPress plugins or themes, video games, applications, or any other kind of software.

Video Tour

For WordPress and Non-WordPress Products

The add-on has been built specifically with WordPress theme and plugin developers in mind, but can be used for any kind of software licensing through the included API. Included with the add-on are complete samples that illustrate how to implement license activation and checking in your theme or plugin, and how to setup automatic upgrades for your theme or plugin that are delivered through the licensing system.

Complete documentation for both WordPress and non-WordPress implementations are available. View documentation.

License key generation can be enabled on a per-product basis, giving you the full ability to sell and track license keys for some products, but not all.

Key Features

  • License key generation
  • Remote license activation
  • Remote license deactivation
  • Remote license checking
  • Ability to manually add / remove sites
  • Simple setup
  • Complete API for custom solutions
  • Automatic upgrade system for WP plugins and themes
  • Limit number of activations
  • License activation logs
  • Automatic license expiration
  • Automatic license renewal reminders
  • Extensive documentation

Add Automatic Upgrades to Your WordPress Products

With the complete API for providing automatic upgrades for WordPress plugins and themes to valid license key holders, this add-on will not only make your life as a distributor of products easier, but it will also thrill your customers by allowing them to upgrade their themes and plugins to the latest version with only one click.

The automatic upgrade system included with the add-on for both themes and plugins follows all of the core WordPress UI standards, so users won’t even know the difference.

Implementing the automatic upgrades into your theme or plugin is a easy as including a couple lines of code (all provided) in your theme or plugin files.

Includes Complete License Renewal System

Software Licensing includes a complete renewal system to allow customers to renew their license keys when they are nearing expiration. Included with the renewal system is an automated email that can be sent to customers when a license is about to expire, and from the email customers can, with a single click, go directly to your store and renew their license key. There are also options to manually renew licenses and also manually send renewal notices. Also included with the renewal system is a complete reporting view that shows a graph of license renewals and earnings from those renewals over time.



Change Log

Version 2.8.2, April 21, 2014

Added additional information about the license to the check_license API request.

Version 2.8.1, April 11, 2014
Fixed a bug with not being able to add / remove sites from the frontend license management.
Updated the package download expiration to 1 hour.
Improved the license renewal form.

Version 2.8, April 1, 2014
Added a new change log widget (thanks Lee Willis!)
Fixed a bug with slashes in changelogs
Fixed a positioning bug of the license key in purchase history in FireFox
Fixed a potential conflict with other filters attached to the_content
Fixed a bug with the license activation limit display in purchase history

Version 2.7, March 26, 2014
Added front-end licensing management so customers can activate / deactivate site URLs.
Improved missing license key generation on purchase records.
Added a renewal link to the Expired text shown on expired keys if renewals are enabled.
Tweaked check_license() method’s logic for empty license IDs
Fixed a display conflict with Purchase Limits, Simple Shipping, and Recurring Payments extensions.
Better validation of site URLs.

Version 2.6.3, March 16, 2014
Fixed a bug with license key activation limits getting set to unlimited improperly.
Fixed the display of “Unlimited” when manually setting a license activation limit to 0 (unlimited).
Added edd_remote_license_activation_response filter.

Version 2.6.2, March 11, 2014
Fixed a bug with license renewals that caused renewal discounts to sometimes be too high.
Fixed a bug with renewing variably-priced products.

Version 2.6.1, March 11, 2014
Fixed a bug with manual activation limit overrides that preventing them from being set to 0 for unlimited.

Version 2.6, February 28, 2014
Added an option to manually adjust the activation limits of license keys.
Added an option to generate license keys for products with missing keys from past purchases.
Added a visual editor to the Changelog field.
Fixed a bug with the activations_left response.
Added a notice to update notifications for expired license keys (to encourage renewals).

Version 2.5.2, February 18, 2014
Fixed an issue with site URLs getting stored and licenses activated even when at activation limits.

Version 2.5.1, February 11, 2014
Fixed a bug with the check_item_name() method introduced in v2.5. The item name being passed in the request needed to be passed through urldecode().

Version 2.5, February 10, 2014
Added support for setting license activation limits per each price option.

Fixed a bug with item name comparisons.

Improved the API responses for license activation requests.

Version 2.4.2, February 5, 2014
Updated the package download system to match the one in EDD core. Helps resolve occasional conflicts with WP Engine and other hosts.
Added support for delivering update packages via the Amazon S3 extension.

Version 2.4.1, January 31, 2014
Fixed a bug with nonce verification during download save.
Base license expiration off of purchase date instead of current time.
Added better support for activation counts when licenses are not tied to site URLs.
Fixed a bug with invalid activation responses because the expired check was running too early.

Version 2.4, January 23, 2014
New: added a retroactive licensing feature to generate keys on old purchases.

New: added option to automatically parse readme.txt files for WordPress plugins for populating the update notice dialog window.

New: added option to edit the expiration dates on license keys.

New: added option to manually add / remove site URLs from license keys.

New: added Renew link to expired license keys in purchase history and on the payment receipt page.

New: added “url” parameter to all license API requests that allow you to specify the exact URL an action is related to for a license.

Updated: rewrote how site URLs are stored to be much, much more efficient, dramatically improving performance and reliability. Also added an upgrade routine to move all site URLs to the new storage method.

Updated: moved the License metabox on Download edit screens to the main column and improved the general layout of the box.

Updated: use rawurldecode() instead of urldecode()

Version 2.3.2, December 18, 2013
Run item names through strtolower() before comparing them.

Version 2.3, December 13, 2013
Fixed a bug with file downloads of products that don’t have a license key.
Fixed a bug with the license renewal system that could possibly allow an incorrect renewal discount to be applied.

Version 2.3, December 13, 2013
Automatically disable file downloads if a license key is expired or revoked.
Show “Expired” on the purchase receipt and history if a license is expired.

Version 2.2.6, December 10, 2013
Fixed a bug that prevent renewal links from adding the item to the cart.

Version 2.2.5, December 8, 2013
Fixed a bug that would allow renewal discounts to be applied to an incorrect product.

Version 2.2.4, December 6, 2013
Fixed a bug with the “expires” return in the check_license request.

Version 2.2.3, December 2, 2013
Fixed a bug with license key generation on bundle products.

Version 2.2.2, December 2, 2013
Fixed a bug with generating license keys for past purchases.
Fixed a bug with checking the product a license key belongs to during activation / deactivation.

Version 2.2.1, November 19, 2013
Delete license keys when their associated payment is also deleted.

Version 2.2, November 11, 2013
Added license renewal reports in Downloads > Reports > License Renewals

Version 2.1.4, November 8, 2013
Fixed a bug that caused renewal notices to be sent multiple times.

Version 2.1.3, November 6, 2013
Fixed a bug that caused renewal notices to be sent out even if disabled.

Version 2.1.2, November 5, 2013
Made the Purchased and Expires columns sortable.
Updated the renewal process to set the new expiration date based on the original expiration date, not the renewal date.

Version 2.1.1, November 4, 2013
Removed a leftover debugging function level that was left by accident.

Version 2.1, October 29, 2013
Added support for adding a list of predefined license keys to products that keys are then generated from for purchases.

Version 2.0.1, October 22, 2013
Fixed a bug that caused license checks to not validate on some sites.

Version 2.0, October 21, 2013
Added support for per-product license expiration dates.

Added cron event for daily checking of expired license keys.

Added a EDD_SL_REDIRECT_UPDATES constant for servers that have problems delivering update files.

Version 1.9.1
Fixed an issue with renewal discount calculations.
Added a new EDD_SL_REDIRECT_UPDATES constant that can be defined if file downloads during updates are corrupted.

Version 1.9
Added new option to generate license keys for payments without license keys for purchased products.
Added a new http_request_args() filter in the plugin update class to ensure ssl verification is disabled during updates.

Version 1.8.2
Fixed a bug with site URLs getting stored at license activation.

Version 1.8.1
Fixed a bug with license renewals.

Version 1.8
Fixed an exploit that could result in malicious users being able to potentially download files via the updater system.
Fixed a bug with html entities in license activation / checking.
Added the ability to Disable license keys.
Automatically disable license keys when associated payments are refunded or revoked.

Version 1.7.3
Added support for quantities introduced in EDD v1.7.

Version 1.7.2
Fixed a compatibility issue with the checkout screen of EDD v1.7.

Version 1.7.1
Fixed an issue with quick edit.

Version 1.7
Use stripos() instead of strpos() when activating a license key.
Fixed an incorrect text domain.
Removed the broken get_license_by_download() function.
Fixed an undefined index on the ‘url’ parameter when performing update checks.
Added a new /changelog endpoint to Downloads to allow the changelog to be displayed.

Version 1.6
Added a license renewal system. Once update is installed, go to Downloads > Settings > Extensions and configure the renewal system.

Version 1.5.1
Fixed an issue with duplicate license keys getting generated.

Version 1.5
Added compatibility for Bundled products in EDD 1.6

Version 1.4.5
Fixed a bug with license activation on products that have a dash in their name.
Fixed a problem with deactivating a license key.
Fixed a missing product description in the plugin updater.

Version 1.4.4
Fixed an undefined index bug.
Fixed an issue with duplicate license keys getting generated when changing payment status.

Version 1.4.3
Fixed an issue with user agents.

Version 1.4.2
Fixed an issue with the update notices not showing.

Version 1.4.1
Fixed a bug with the new per-site statuses.

Version 1.4
Updated so that each site a license is used on receives a status, which fixes a bug with being able to update even when a license is inactive.

Fixed a compatibility problem with EDD v1.5.

Version 1.3.9
Fixed several undefined index errors.
Fixed an issue with the edd_license_log post type being registered too late.
Added an option to force every license activation to be counted.
Updated the Them Updater class to use get_stylesheet().

Version 1.3.8
Fixed an incorrect option value in the updater.
Added an improved license key field that allows for licenses to be deactivated.

Version 1.3.7
Fixed an issue with deactivated license keys still allowing updates.

Version 1.3.6
Added license keys to the Sorry, trouble retrieving payment receipt. short code.
Fixed a bug with site counts when reactivating a site’s license key.

Version 1.3.5
Fixed a bug with the site counts during activation so that each unique URL is now only counted as a single site.

Version 1.3.4
Dramatically improved performance of Licenses admin page.
Added license counts for each Status View in the admin.
Added new $download_id parameter to is_at_limit() member function.
Improved code formatting.

Version 1.3.3
Fixed an issue with the get_version remote request for non-WordPress implementations.

Version 1.3.2
Made a significant performance improvement for all remote requests.

Version 1.3.1
Fixed an undefined function error when searching for license keys.

Version 1.3
Added a method for remotely deactivating license keys.
Updated the sample plugin and theme with examples of deactivating license keys remotely.
Improved the log entries for license activation and deactivation.

Version 1.2.1
Fixed a bug with license keys on the purchase history page.

Version 1.2
Added a license search field.
Improved sample plugin and theme.
Simplified the sample theme.

Version 1.1.1
Added several new action hooks that can be used for executing custom functions at various stages of license creation, activation, and checking.

Version 1.1
Added option to limit the number of times a license can be activated.
Added license keys to the Purchase History short code so buyers can easily retrieve their license keys.
Updated default language files.

Version 1.0.1
Fixed a bug with the updater.
Changed the licensing page to show 20 items instead of 5.

Version 1.0
Initial release.