Skip to main content
Software Licensing Changelog

Version 3.8.9 — September 20, 2023

  • Improved: Revoking of licenses now supports the ‘On Hold’ status added in EDD 3.2.0 and no longer disables a license if an order is partially refunded.
  • Improved: Improved license renewal cost calculations for licenses sold on a single-priced download, which is later changed to a variable-priced product.

Version 3.8.8 — June 28, 2023

  • New: Added support for IDN domains with license API.
  • New: License upgrade URLs now support sending in the license_key in addition to the license_id.
  • Improvement: We’ve improved the performance when getting licenses of a user by ID.
  • Improvement: Unneeded legacy license meta for stores that migrated from custom post types to custom tables. This is being handled in a background process. You will be notified when the process starts and completes via the EDD notifications (or admin notices if you are EDD versions lower than 3.1.1)
  • Improvement: Added optimized indexes to the licenses table and optimized queries for licenses.
  • Fix: Some licenses could not be upgraded if the most recent order was refunded.
  • Fix: The checkout block did not properly display license renewal line items.
  • Fix: Removed uses of the get_page_by_title function as it was deprecated in WP 6.2.
  • Fix: Renewal Notice editors did not have a proper section title in the Settings area.
  • Fix: Getting a license’s activation limit was inconsistent.
  • Fix: EDD 3.x – License renewal report was inaccurate when combined with Recurring Payments.
  • Fix: When a license is revoked, the user is unsubscribed from renewal emails.
  • Fix: Lifetime licenses could sometimes get set to expired.
  • Fix: Software licensing reports did not account for renewal orders in the tiles.
  • Fix: The quick actions for Software Licensing emails did not return the user to the proper settings page.

Version 3.8.7 — October 20, 2022

  • Improvement: Output has been updated for better compatibility with the order history and receipt blocks.
  • Fix: Licenses in bundles did not always display correctly.
  • Fix: Licenses could not always be upgraded more than one time.
  • Fix: The price option on the receipt was missing a space.
  • Dev: The main get_license method has been updated to return false if a license object could not be retrieved.

Version 3.8.6 — June 17, 2022

  • Fix: Improved performance related to license retrieval and activation counts.
  • Dev: Remote Version and License Check methods can now return an array instead of only outputting JSON.
  • Dev: The arguments used to create a license can now be filtered.
  • EDD 3.0: License upgrades were not supporting the partially refunded status.
  • Samples
    • Sample Plugin
      • ‘Tested Up To’ value for WordPress Plugins now mirrors WordPress Core behavior.
      • EDD_SL_Plugin_Updater class is now 1.9.2.

Version 3.8.5 — March 17, 2022

  • Change: Renewal notices settings are now under the main email settings tab.
  • Update: The bundled German translation files have been updated.
  • Improvement: Placeholder URL schemes are now https.
  • Improvement: The renewal discount can now be filtered more precisely.
  • Fix: Changing the price option of the main bundle product is now properly reflected on child licenses.

Version 3.8.4 — February 15, 2022

  • Fix: The license keys shortcode was not showing “Unlimited” for unlimited licenses.
  • Fix: In certain scenarios, users who opted into upgrading to betas could not upgrade to a newer stable version of a download.
  • Fix: Variable prices could not set the activation limit to be empty.
  • Fix: The Software Licensing upgrade notice was showing on new EDD 3.0 installations.

Version 3.8.3 — December 2, 2021

  • Fix: Fatal error when changing price ID on existing bundle license.
  • Fix: Deprecation notice in PHP 8.1.
  • Fix: Updating a lifetime license incorrectly sets the expiration date to today.
  • Dev: The EDD_SL_License constructor can now accept an array or object representing the database row.
  • Dev: Performance improvements when retrieving license keys.
  • Dev: Use EDD core’s extension registry class if available.

Version 3.8.2 — November 3, 2021

  • Modified Templates: templates/license-keys.php, templates/licenses-manage-overview.php
  • New: Added action hooks when license is updated, inserted, and deleted.
  • Improvement: Sample Plugin – Refactor health checks so that a failed API request is remembered for 1 hour.
  • Improvement: Sample Plugin – Show update notifications on multisite if the user can view plugins but cannot install them.
  • Fix: An upgrade path was saved to download meta when not configured.
  • Fix: Newly created renewal notice emails save an incorrect message.
  • Fix: Purchasing an item as a single product and as part of a bundle results in a missing license key.
  • Refactor: License templates have been reworked for speed improvements and to reduce the number database queries.
  • Dev: Ensure edd_sl_get_license_upgrades() always returns an array instead of false.

Version 3.8.1 — September 15, 2021

  • New: Added three filters on Staged Rollout logic: edd_sl_staged_rollout_identifier, edd_sl_staged_rollout_eligible_for_batch_update, and edd_sl_staged_rollout_number.
  • Improvement: The Use the last time this Download was modified as the “Last Modified” date? meta option has been removed, as this behaviour was happening regardless of whether the option was checked.
  • Improvement: Shortcodes are now stripped from the API plugin description. This prevents un-rendered shortcodes from displaying to end users when they click “View Details” on the plugin page.
  • Fix: SHOW TABLES LIKE query running on every page load.
  • Fix: Edge case No such file or directory warning from the readme parser.
  • Fix: Unexpected results in a plugin’s “last updated” date, especially when using non-English languages.
  • EDD 3.0: Ensure Software Licensing email tags have a label.

Version 3.8 — August 30, 2021

  • New: Admins can now subscribe and unsubscribe users from license renewal emails.
  • New: Staged Rollouts feature – You can now slowly release a new version of your software to your users.
  • New: Version Requirements feature – Prevent users with unsupported requirements from getting updates.
  • New: Added an index to the license_key database column to improve performance.
  • Fix: Upgrade paths button did not work with Easy Digital Downloads 2.11.
  • Fix: Tooltips displayed incorrectly when using German translations.
  • Fix: Methods to get license term and license expiration unit nicename did not respect variable price IDs.
  • Fix: Show Changelog link for multisite could show the changelog for the wrong download.
  • Sample Plugin
    • Updater Class: Updated to version 1.9.
    • New: Support for requirements checks before providing an update package.
    • Fix: Improved support for multi-site installations.
  • Sample Theme
    • Updater Class: Updated to version 1.2.
    • New: Support for requirements checks before providing an update package.
    • Fix: Removed some PHP errors and warnings.

Version 3.7.3 — July 26, 2021

  • Improvement: Adjust license upgrade logic to account for different license lengths for different variable prices. (Requires custom code.)
  • Fix: 1 month to 1 year upgrade results in incorrect dates and amount.
  • Fix: License expiration date picker not working as expected with all date formats.
  • Fix: Retroactive processor not working with item quantities.
  • Fix: Remove .DS_Store file from sample theme.
  • Fix: Fatal error in theme updater in PHP 8.
  • EDD 3.0: Update to use new order history hook for speed improvements.

Version 3.7.2 — June 14, 2021

  • New: Admin notice about upcoming system requirement changes in version 3.8. You will only see this notice if you don’t meet the future requirements. (PHP 5.6, WP 4.9, EDD 2.9)
  • Improvement: Reworded the retroactive processor message on the order details page.
  • Improvement: The request data is now passed to the edd_sl_license_response filter.
  • Improvement: The “Cancel” license renewal link is now a <button>.
  • Fix: Child license can display incorrect information when the variable price ID is 0.
  • Fix: Incorrect upgrade price when variable price ID is 0.
  • Fix: Readme parsing was still processing when disabled, if it had been enabled previously.
  • Fix: Changing an order status back to completed generated new, additional license keys.
  • EDD 3.0 – Retroactive Processor compatibility.
  • EDD 3.0 – Compatibility with new refund API.
  • EDD 3.0 – Update some raw database queries on the post meta table to be compatible.

Version 3.7.1 — March 29, 2021

  • New: The get_version API endpoint can now accept an array of products to check via a new products argument. Each item in the products array uses the exact same arguments as individual requests. Consult our docs for an example.
  • Improvement: License management links (“Manage Sites” link, etc.) weren’t working well with customized/tabbed UIs. We’ve partially reverted the change from 3.7, so that it should now use the old method if the shortcode is inside The Loop. If the shortcode is outside The Loop it will use the new method that was introduced in 3.7.
  • Fix: If no upgrade paths existed for a product, the current product could not be selected as an upgrade option.
  • Fix: Deprecation notices in PHP 8.
  • Fix: The edd_sl_use_current_price_proration filter wasn’t applying to non-variable priced products.
  • Fix: edd_license_keys shortcode – The “Manage Sites” and “Upgrade” links weren’t working if the “Purchase History Page” was not set correctly.
  • Fix: Readme parser wasn’t using version_compare() which could result in incorrect comparisons.
  • Fix: PHP “undefined index” errors.
  • Plugin Sample: The updater class was missing the declaration for the $beta property.
  • Plugin Sample: Fixed an “Invalid argument supplied for foreach()” error in EDD_SL_Plugin_Updater::convert_object_to_array()
  • EDD 3.0 – Filtering orders by renewal/upgrade not working.
  • EDD 3.0 – PHP notice on admin license table if associated order doesn’t exist.
  • EDD 3.0 – Both legacy and new reports were being loaded. Now only the new ones are.
  • EDD 3.0 – License renewal JavaScript not loading on checkout.

Version 3.7 — January 26, 2021

  • New: The admin Licenses table has been reworked, and the number of queries reduced.
  • New: Added a new shortcode edd_renewal_form that allows customers to enter a license key to renew.
  • New: Renewal notices can now be previewed.
  • New: Email template tags are now more consistent with EDD core. {name} can be used for the customer’s first name only, and {fullname} can be used for the customer’s full name.
  • New: When purchasing an upgrade, the license key being upgraded is now displayed in the cart.
  • Improvement: Add * to list of allowed local/staging subdomains.
  • Improvement: Utilize wp_get_environment_type() to help improve staging domain detection.
  • Improvement: The renewal/unsubscribe URLs on the admin Manage License page have been changed to readonly inputs for easier copying.
  • Improvement: Clicking the “Generate License Keys” link on a payment now takes you directly to the Retroactive Processor metabox.
  • Improvement: Update the display of order numbers to be compatible with sequential ordering and order prefix/postfix.
  • Improvement: Clearing cached readme files now happens via ajax instead of requiring a page reload.
  • Refactor: Use wp_add_inline_script() for checkout JavaScript.
  • Refactor: Images, CSS, and JS have been moved into an assets/ directory.
  • Fix: Retroactive Processor tool not working with upgrades.
  • Fix: Inconsistent get_version API response when no license key is provided.
  • Fix: Licenses were still able to be renewed via a direct URL even if renewals were disabled.
  • Fix: Undefined variable errors.
  • Fix: When purchase_history was used outside of the main loop, Software Licensing features were not working.
  • Fix: Empty post meta was being saved unnecessarily.
  • Dev: Numerous code updates for EDD 3.0 compatibility.
  • Dev: Remove usage of extract() in license API functions for improved readability and to align with WordPress coding standards.
  • Dev: Replace internal uses of EDD_SL_License::$post_parent (which is deprecated) with EDD_SL_License::$parent.

Version 3.6.13 — December 2, 2020

  • Fix: Upgrade calculations can be incorrect when the upgrade has two variations that are the same price.
  • Fix: Admin “Manage License” screen showing incorrect child price ID.
  • Fix: Unable to deactivate a “site” when the site is not a URL.

Version 3.6.12 — November 2, 2020

  • New: Samples updated to support auto updates.
  • Improvement: Increase width of input fields on Edit Download page.
  • Fix: Conflicts with ManageWP Orion.
  • Fix: Bundled products containing variable priced products without specifying a price option may incorrectly show a price option in license key lists.
  • Fix: License key price ID not updated when upgrading from an individual product to a bundle containing that same product.
  • Fix: “Uncaught TypeError” JavaScript error when running upgrade for update license activation records.
  • Fix: JSON response broken by Redis Object Cache plugin.
  • Fix: Proration calculation when upgrading from a limited license to a lifetime license.
  • Fix: Timeout when using Test Email button on purchase receipts.
  • Fix: Minimum WordPress and PHP versions not showing when viewing update version details.

Version 3.6.11 — May 18, 2020

  • Fix: Disabled licenses were able to be upgraded.
  • Fix: The EDD_SL_License_Meta:get_license_id was not respecting the single argument.
  • Fix: The EDD_SL_License_DB class was not respecting the date range when an end date was only passed.
  • Fix: Changelogs were being inproperly truncated on some customer sites when the more tag was not supplied.
  • Fix: When renewals were not enabled, the option to send a renewal notice was still visible.
  • Sample Plugin (EDD_SL_Plugin_Updater version 1.7.1):
    • Fix: Removed a duplication of the icon data.
    • Fix: Prevent the possibility of duplicate entries of cached update information.
    • Fix: Improve the no_update data set.

Version 3.6.10 — April 8, 2020

  • Fix: When Apache forced trailing slashes, update packages could fail to be downloaded.
  • Fix: When upgrading a bundle, the child licenses may not have gotten their price IDs updated.
  • Fix: It was not possible to renew multiple licenses for the same product, at the same time.
  • Fix: When using bundle licenses with children, the license list table had some performance issues.
  • Fix: Child licenses could have a different activation limit than their parent.
  • Fix: License counts on the list table for license statuses could be incorrect when child licenses were used.
  • Fix: Some of the Readme information was not being parsed correctly after the latest parser update.
  • Fix: Searching for a child licenses could give incorrect results, or no results.
  • Fix: Updates could intermittently cause the ‘Too Many Redirects’ error.
  • Fix: Searching for partial license keys and email addresses could cause PHP notices and/or warnings.
  • Fix: When jQuery was being loaded in the footer, some JavaScript errors could occur when managing licenses on the front end.
  • Fix: Searching for a non-existent license key, returned all license keys in the list table.
  • Fix: Improved the reliability of the checks to make sure an update can be downloaded.
  • Fix: When using custom keys, it was possible to use a key length that exceeded the database column’s allowed length.
  • Sample Theme:
    • Fix: The sample theme was missing the theme_slug parameter from the API calls.
    • New: The sample theme now supports the item_id parameter.
  • Sample Plugin:
    • Fix: The “View Details” link on the plugin list was not always present.
    • Fix: Sample plugin did not define the EDD_SAMPLE_ITEM_NAME string.
  • New: Changelogs now support the “Read More” tag, to allow reducing changelog information stored in the get_version API calls.
  • Dev: The license list table columns are now filterable and sortable.

Version 3.6.9 — March 12, 2020

  • Fix: Some information that can be included in the readme.txt files were not being parsed.
  • Fix: The “Tested Up To” value was not being read properly in the get_version calls.
  • Fix: The contributors section of the readme.txt files was not being parsed correctly.
  • Fix: Corrected an issue that caused an `is_countable` notice being thrown on PHP 7.2+.

Version 3.6.8 — March 19, 2019

  • Fix: Licenses were missing from REST API sales data response when sequential order numbers was enabled.
  • Fix: License list table was getting 20 per page, but building pagination for 30.
  • Fix: Corrected an issue with the template for managing licenses causing the ‘Back’ link to be incorrect.
  • Fix: A PHP warning was being logged when logging a license renewal email being sent.
  • Fix: Custom activation count meta could get removed if deleting a license that has activations.
  • Fix: With URL Checking Disabled, the attempt to get a URL is still run, it should not have been.
  • Fix: De/activating with no URL parameter was returning success when it should have failed with URL checking required.
  • Fix: We now support ‘staging-` in the local URL detection to support Kinsta staging environments.
  • Dev: The EDD_SL_DB::insert method wasn’t using the type passed into the method.