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_keysshortcode – 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_formthat 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 *.wpengine.com 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_historywas 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) withEDD_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.
Version 3.6.7 — February 22, 2019
- Fix: Prevent the license query from accepting a user ID or customer ID of 0.
Version 3.6.6 — February 11, 2019
- Fix: Database class generated invalid MySQL statement when using arrays for parameters in some cases.
- Fix: Changelog widget was not using readme data.
- Fix: Corrected an issue when parsing readme.txt files
- Fix: URLs containing query strings could not be activated/deactivated from admin or frontend.
- Fix: Bulk actions for licenses were not working.
- Fix: Improved the accuracy of the get_license_keys_of_user() method.
- Fix: Price option settings are no longer displayed when licensing is disabled.
- Fix: Corrected a compatibility issue with updates and the Git Updater extension.
- Fix: The cron that sends renwal reminders now verifies that the Send Renewal Reminders option is checked.
- Fix: Child licenses now have the correct expiration date when the bundle license is renewed.
- Fix: Disabled licenses are not able to be automatically set to expired.
- Fix: Improved issues around user IDs and license keys.
- Fix: Corrected an issue that caused a ‘key_mismatch’ error in the API when keys had leading or trailing whitespace.
- Fix: Using contributors in the readme.txt caused a fatal error.
- Fix: The sales API previously caused a PHP error when no licenses were present for an order.
- Fix: Status changes did not always call the appropriate do_action hooks.
- Fix: The `is_local_url` variable was possibly undefined when calling the get_version API endpoint.
- Sample Plugin/Theme Chagnes
- Updated the theme sample to not use wp_die when errors are encountered.
- Fixed an undefined property in the EDD_SL_Plugin_Updater class.
- The EDD_SL_Plugin_Updater class now uses the verify_ssl method when making remote calls.
- Bumped the EDD_SL_Plugin_Updater version to 1.6.18
- Included samples in the delivered/downloaded extension, as well as available within your account.
Version 3.6.5 — September 10, 2018
- Fix: License activate/deactivate status is now fully controlled by the Activations database.
- Fix: Corrected an issue where using Emoji in changelogs could cause problems on customer sites using old Database Schemas.
- Fix: Configuring the changelog widget could cause problems on sites with a large number of products.
- Fix: The check_license endpoint was returning “valid” for local URLs even when “Ignore Local URLs” was not enabled.
- Fix: Before the first save of a download, existing downloads were not able to be selected for the upgrade paths.
- Fix: The license deactivate response was incorrect when passing erroneous URLs.
- Fix: Further improved isolating unnecessary queries from license management views on the front end.
- Fix: The check_license now returns “site_inactive” when checking a local URL and Ignore Local URLs is enabled.
- Fix: The manage license front end views are now limited to only logged in users.
- Fix: EDD REST API Sales endpoint now returns no licenses when an invalid payment ID is provided.
- Fix: License Card view used `get_the_time` for Purcahse Date instead of the built in method of EDD_Payment.
- New: Added ‘test’ as a valid subdomain and tld to the local URL checks.
- New: Added a confirmation when regenerate an existing license key.
- New: Update readme.txt parsing to use unmodified helper classes.
- New: Licensed products can now have renewal discounts disabled on a per-product basis.
- Dev: Added a method to the EDD_SL_Download class to allow for easier logging.
Samples:
- New: Plugin Updater – Support was added for plugin icons introduced in WordPress 4.9.
- Fix: Plugin Updater – Added a health-check for store URLs before attempting to run get_version calls.
Version 3.6.4 — July 2, 2018
- Fix: Deleting a parent license does not remove the association for child license keys.
- Fix: Searching for a child license failed in the license list table.
- Fix: Upgrading a license from a deleted price ID caused unexpected pro-ration amounts.
- Fix: Removed some duplicate queries on the license list table.
- Fix: Guest licenses were not updated to have the user ID when a guest was converted to a user.
- Fix: Reduced the number of queries run when getting a license’s sites.
- Fix: License exports contained the product ID instead of name.
- Fix: Improved cache accuracy for license objects.
- Fix: Searching for licenses by email was not working in the license list table.
- New: Added customer name and email to the license export.
- New: Removed dependency on jQuery for license management overview.
- Dev: Minor changes to the output for the WP CLI command to migrate licenses.
Version 3.6.3 (Phased Roll-out) — May 17, 2018
- Fix: Corrected an issue causing license expiration emails to be sent at incorrect intervals or times.
Version 3.6.2 (Phased Roll-out) — May 10, 2018
- Fix: When ignoring local domains for activation counts, package updates were failing when only local domains were activated.
- Fix: You can now search for licenses by activated domains in the licenses list view, again.
- Fix: Remove usage of sanitize_key for license key generation and migration so that keys keep their case sensitivity.
Version 3.6.1 (Phased Roll-out) — April 25, 2018
- Fix: Corrected many textdomain issues.
- Fix: License term could be incorrectly determined if the license had a price ID but was not assocaited with a variable priced product.
- Fix: License Deactivation with Disable URL Checking resulted in resetting the activation count to 0.
- Fix: Corrected an issue with the license status sometimes reporting as inactive when it should be active.
- Fix: Fixed an issue with the new Activations DB class that resulted with incorrect Sites being returned when not sending in a license id.
- Fix: Disabled licenses were listed as “inactive” in the API.
- Fix: Software Licensing could cause a fatal error if Easy Digital Downloads was not active.
- New: Added the ability to regenerate a license key from the License view.
Version 3.6 (Phased Roll-out) — April 3, 2018
- IMPORTANT: This update will ask you to perform database maintenance once installed. Your site should remain functional during this time.
- New: Improved stability and performance by moving license data to custom database tables.
- New: Added license status CSS class to customers license list view.
- New: When a license is renewed or upgraded, the timestamp of the purchase is now stored on the license meta.
- New: Added .test to the TLDs to check when determining if it is a local activation or not.
- New: Added capabilities for license management (view_licenses, manage_licenses, delete_licenses).
- New: Added the ability to swap the price_id of a license.
- New: Included helper text to the +/- buttons for license activation increase and decrease.
- New: Clarified terminology for ‘activate’ regarding licenses vs sites.
- New: Improved the hooks and filters in the Software Licensing API.
- New: Improved the flexibility of EDD_SL_Package_Download.
- New: Enhanced licenses list table with more helpful data.
- New: Tables on the front end now have the .edd-table class.
- New: Removed the final keyword from the EDD_SL_License class.
- New: Improved searching for license keys by supporting partial key search.
- New: Change ‘View’ to ‘Manage’ on the licenses list table.
- New: Changelogs can now be filtered.
- New: Betas can now be downloaded from the front-end by users.
- New: Refunded renewals now rollback the expiration date of any associated licenses (Recurring Payments).
- New: Improve stability of package delivery when files are added and removed from downloads.
- New: API Responses now include the Item ID.
- New: Improved the license export tool to avoid timeouts when exporting a large number of licenses.
- Fix: Corrected an issue preventing files from being downloaded when a purchase had 2 license keys for the same product.
- Fix: Improved the accuracy and stability of the Retroactive License Processor.
- Fix: We now prevent a case where you can ‘upgrade’ to the same price ID that is already owned.
- Fix: Increased get_license_keys_of_user() to get 50 keys.
- Fix: Deleting initial payment attached to licenses could cause MySQL errors.
- Fix: Fixed data inconsistencies between bundle and child license keys.
- Fix: Renewal payment IDs are now being added to the license meta (Recurring Payments).
- Fix: Renewal notices were sometimes being sent to refunded licenses.
- Fix: Prevent an issue with lifetime licenses when upgrading to a bundle.
- Fix: License activation is now only logged once.
- Fix: Child license expirations could sometimes get out of sync with their bundle license expiration.
- Fix: Deleting a payment did not remove it from the license meta.
- Fix: HTTP was being forced on the beta file URLs, causing issues.
- Fix: Replaced current_time(‘timestamp’) with time() in the sample plugin.
- Fix: Generally improved the performance of getting license counts.
- Fix: The edd_empty_cart function was not clearing edd_is_renewal data.
- Fix: Frontend output of the changelog is now run through stripslashes().
- Fix: There was an undefined variable notice in the Sample Theme.
- Fix: Upgrading from a single-site Bundle to a multi-site Bundle wasn’t always applying the correct price id assignment.
- Fix: Updated the Automattic_Readme parser.
- Fix: Updated the Markdown_Parser.
- Dev: Added filters to the EDD_SL_Download upgrade file key methods.
- Dev: Added filters for hash verification in package links.
- Dev: Added edd_ignore_x_accel_redirect filter.
- Dev: Improved comments and documentation throughout the plugin and samples.
Version 3.5.23 — December 13, 2017
- Fix: Local URL identification during API calls could fail for some domain non-local domain schemas.
Version 3.5.22 — November 20, 2017
- New: Add actions to the upgrades metabox.
- Fix: Corrected an issue causing inline upgrade links to throw PHP Notices.
- Fix: Prevent an issue causing retrieving a renewal discount amount on a non-existant license key.
Version 3.5.21 — October 10, 2017
- Fix: Repeatable row wrappers for upgrades incorrectly had the edd_repeatable_upload_wrapper class applied.
- Fix: Upgrading from lifetime licenses to time-limited licenses fall back to cost-based proration.
- Fix: Upgrades from lifetime licenses to time-limited licenses caused incorrect license expiration dates.
- New: Added prefix to Software Licensing API response cache keys
- New: Activating/Deactivating licenses from Admin now shows an entry in the license logs.
- New: Improved staging detection of EDD_Software_Licensing::is_local_url.`
Version 3.5.20 — September 15, 2017
- Fix: Item name check did not account for if a download had been deleted.
- Fix: Revoking a license was only limited to ‘completed’ payments, affecting some gateways.
- Fix: Activations on licenses did not change after upgrading to a different product.
- Fix: Remove use of wp_cache to avoid issues with licenses having incorrect status.