Fixed a bug with the apply license renewal form when the product uses variable prices

Fixed a bug that would prevent renewal notices from being sent out after the license had been renewed at least once

Fixed a bug that prevented the default renewal notice from being deleted

Version 3.0.2, November 4, 2014

Fixed a bug with renewal discounts and the Commissions extension that caused discounts to not be taken into account when generating commissions.

Fixed a bug in the EDD_SL_Plugin_Updater class that prevented updates from showing when not using multisite. Please update the file distributed with your plugins.

Version 3.0.1, October 29, 2014

Fixed a bug in the plugin updater class that caused update checks to run on every admin page load. Please update the version of EDD_SL_Plugin_Updater distributed with your plugins.

Version 3.0, October 21, 2014

Added support for multiple renewal notices, each sent at a designated time frame before or after license key expiration

Fixed a bug with renewing old license keys that did not have a price_id assigned to them

Fixed a bug in the EDD_SL_Plugin_Updater class that prevented plugin updates from working on non-primary sites in a multisite install

Improved the HTML markup of the license renewal form on the checkout screen

Added support for passing "item_id" instead of "item_name" to the API requests

Added new export options to allow exporting a CSV of license keys

Fixed an improper redirect when updating the expiration dates of license keys

Fixed several potential security vulnerabilities

Version 2.9.1, August 15, 2014

Fixed a critical bug with renewals of products that have variable prices, props Yoast

Fixed a bug in the Sample Plugin that caused update notices to not always show properly

Improved caching of the API response for the get_version call

Added a new filter to get_license_logs(), props Lee Willis

Fixed a bug with double encoding of product titles

Introduced a new filter called edd_sl_send_renewal_reminder

Store the time that renewal notices are sent instead of just "1"

Added a new filter for the the license key length, edd_sl_license_key_length

Version 2.9, June 30, 2014

Fixed a bug with license activation limits not being properly checked when manually adding new site URLs

Improved the Go Back buttons in the frontend license manager

Version 2.8.9, June 16, 2014

Fixed a bug with license keys not being updated when the user ID or email of the connected payment is updated

Fixed the missing retroactive licensing tool with EDD 2.0+

Fixed a 404 error caused by attempting to load a non-existent CSS file

Fixed a typo in the retroactive licensing section

Updated the View License Log link to use ajax to pull in the logs instead of querying them all on page looad.

Version 2.8.8, June 11, 2014

Fixed a bug with license activation limits when URL checking is disabled

Improved performance of the get_license_by_key() method

Improved performance of all API requests by disabling some default actions in WordPress core

Version 2.8.7, May 22, 2014

Fixed a security bug. Please update.

Version 2.8.6, May 20, 2014

Fixed a bug with searching license key.

Updated the ReadMe.txt cache expiration time to 6 hours

Version 2.8.5, May 19, 2014

Fixed a bug with filtering the licenses page when a specific view is chosen

Fixed a bug with retrieving the proper user info when sending renewal notices

Fixed a bug with when the text domain is loaded

Fixed a missing echo statement

Fix a bug with URLs that contain www or are https

Version 2.8.4, May 13, 2014

Fixed a bug with license expiration dates when renewing license keys

Fixed a typo

Fixed a performance issue with the log creation process when license keys are activated / deactivated by explicitly passing the post_name key to prevent WordPress from looking up possible slugs for the entry

Version 2.8.3, May 5, 2014

Fixed an undefined index for $item_id

Fixed a deprecated function call.

Fixed a bug with renewal notes for email addresses that contain dashes.

Fixed a bug that caused duplicate update checks

Added a French language file

Added "url" to sample license activation requests

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, 2014Fixed 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, 2014Added 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.6.3, March 16, 2014Fixed 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, 2014Fixed 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, 2014Fixed 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 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.1, 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.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.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
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.

Version 1.3.9.1
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 [edd_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. Props Joost de Valk.

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. Props to @Yoast

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.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.

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.

License key management

Each individual license key includes a complete details screen that makes all relevant purchase and customer data easily accessible.

License key generation can be enabled on each product in your store separately and every product gets its own settings, allowing you to easily sell many different product variations and non-software products at the same time.

Licensing API

Software Licensing includes a complete and easy to use JSON API that can be used for activating, checking, and validating license keys. This provides software developers a way to remotely activate and validate license keys within software applications.

License renewals

Included with Software Licensing is a complete renewal system to allow customers to renew their license keys when they are nearing expiration. The renewal system provides automated email reminders 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.

Renewal discounts can be configured by site administrators to help incentivize customers to renew their license keys.

Site administrators can also manually renew license keys on behalf of customers at anytime, or manually email renewal notices to customers.

Software Licensing also provides a complete reporting view that displays a graph of license renewals and earnings from those renewals over time so you can better understand how many customers renew their licenses.

The renewal system is also fully integrated with our Recurring Payments plugin, allowing you to set up automatic renewals with recurring subscriptions.

License upgrade paths

For sites that sell multiple versions of their software, allowing customers to upgrade from one level to the next is important. Software Licensing provides a complete system for creating upgrade paths for customers to upgrade between license levels.

Upgrade purchases can be prorated based on the customer’s existing purchase and can even include additional discounts. Upgrade paths can be configured to allow customers to upgrade between license levels of a single product or even to entirely different products.

Add one-click updates to your WordPress plugins and themes

With the complete API for providing automatic updates 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 update their themes and plugins to the latest version with a single click.

The automatic update 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 as easy as including a couple lines of code (all provided) in your theme or plugin files.

Software Licensing includes full support for parsing the readme.txt files for WordPress plugins, allowing you to include the same information in plugin update dialogs as plugins hosted on WordPress.org.

If you manage your plugin and/or theme development in GitHub or BitBucket, version releases can be distributed through git with our Git Download Updater extension.

For WordPress and non-WordPress Products

Software Licensing 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.

Beta versions

Successful software releases require testing and to properly test new versions developers need to release beta versions. Software Licensing includes support for releasing beta versions of your software so you can better test your releases before making them available to everyone.