The Easy Digital Downloads team has made a commitment to improving the performance of our platform by introducing custom database tables for relevant data over the past year. For the last few months, we’ve been slowly rolling out the latest version of Software Licensing to store owners.
Since this is such a major change, we wanted to phase in this release in order to work out as many issues as we could before making it generally available, and today is that day. Here are the big changes you can expect to see in Software Licensing 3.6.5.
Custom database tables
As we’ve been doing with our other extensions, store owners will be presented with a migration utility that allows them to move the data from the old custom post types, to the new data format. With this version we’ve introduced a more user friendly experience that has more user-facing feedback as to how things are migrating.
If your site was already part of the previous “roll out” process, you would have seen the following migration notice in versions 3.6 – 3.6.4. You do not need to run another migration process if you have previously migrated to the custom tables already.
Initially, store owners will be presented with an expandable admin notice informing them of this upgrade, and what it encompasses.
Instead of immediately starting the upgrade, as we have previously done, the store owner needs to click to start this process. There are a possible 3 steps that need to be completed on the initial view:
- Migrate Licenses
- Update bundle licenses
- Update license logs
Since it may be possible that your store does not need all of these options, only the relevant steps will be shown:
Starting the upgrade will ‘batch’ this process by only migrating a handful of licenses at a time, to help reduce any risks of causing errors due to server resources. When step 1 is completed a check is run to see if the number of legacy license keys matches the number of new license keys.
If these numbers match, any remaining steps will be automatically started. If the numbers are different, however, the remaining steps will not be started automatically, allowing store owners to go see if there was a reason for this, and verify any necessary data was migrated prior to starting the remaining steps.
When all steps are completed, store owners will be notified they can navigate away from the upgrades page to verify data. At this point their store is 100% using the new license tables. The old data still exists, until the final ‘Remove Legacy Data’ step is performed.
If you are running a large store, with more than a thousand licenses, we recommend running this migration over WP-CLI with the provided command. This will ensure the fastest and most reliable method of upgrading a large data set.
If you are a developer and would like to know the new database table structures, you can see our blog post announcing the beta to see this.
New license capabilities
In the past, Software Licensing has always used some of the Easy Digital Downloads roles and capabilities to restrict who can view and modify licenses. In version 3.6, we’ve added 3 capabilities, which allow a granular customization as to what roles can view, edit, and delete licenses from a store. By default, the mappings for license capabilities are tied to EDD Core roles, but can be customized to your preference with a role management plugin or custom integration.
- view_licenses: Allows viewing the list table and details page of individual license keys. The capability has been added to these roles:
- Shop Manager
- Shop Worker
- manage_licenses: Allows modifying license data. The capability has been added to these roles:
- Shop Manager
- Shop Worker
- delete_licenses: Allows deleting license records. The capability has been added to these roles:
- Shop Manager
Download betas from the front-end
In version 3.5, we added support for adding beta versions of licensed products. In version 3.6, customers are able to download beta versions from within their accounts, just like they do with stable versions. These beta files will appear anywhere that EDD outputs download files by default.
Swap variable price assignment
If a license is attached to a product that has variable pricing enabled, users with the ‘modify_licenses’ capability can now change the variable price assignment of a license.
- More information has been added to the Licenses list table.
- Improved performance for front end license management views.
- Added the ability to regenerate a license key for an existing license.
- Item ID has been added to the API responses.
- License search has been improved to allow partial license search.
- Front-end tables have the
.edd-tableclass added to allow better theme support.
- Changelog output can now be filtered.
- Refunding a renewal payment rolls back the license expiration.
- Better tool-tips for license management.
finalkeyword from the
- License export tool now uses batch processing API to avoid timeouts.
- Upgrade and Renewal dates are now stored in License meta.
- Added the customer name and email address to the licenses export.
- Added support for plugin Icons to appear in the Updates page (requires WordPress 4.9+)
- Allow product level renewal discount settings.
- Updated the readme and markdown parser libraries.
- Added a
testto the list of local subdomains.
Notable bug fixes
- Fixed a fatal error when EDD was not active.
- Improved overall performance of license count checks.
- Changelog widget configuration could fail on stores with a large number of products.
- Lifetime child license expiration is now tied to their parent licenses.
activate_licenseAPI call logged the activation twice in the license logs.
- Upgrading from lifetime to a bundle caused some issues with the expiration dates.
- Deleting a payment record now properly affects license meta for renewals and upgrades.
- Beta file URLs are no longer forced to
- Sample plugin now uses
current_time( 'timestamp' ).
- Using the
empty_cartfunction now removes any renewal session data.
- Using Emoji in changelogs could cause issues on sites where the database schema is set to UTF-8.
- Added a health check to the EDD_SL_Plugin_Updater to prevent issues when stores are not responding.
- Managing a license now requires a user to be logged in.
Frequently Asked Questions
Why did the status counts change after the migration?
You may notice, after running the migration, that some of the status counts in the license list table have changed. This is because during the migration, some checks were run against the licenses to correct any incorrect statuses. While you may see some differences in the counts for individual statuses, the overall license count should remain the same.
Can my store still receive new payments and generate licenses while this migration is running?
Yes! While this migration is running, your store will still be able to process payments and generate new licenses, while the old data is being migrated.
Installing this update.
This is a significant update for Software Licensing and we have tested it as extensively as possible. As we always do, we suggest first applying these changes and running the migration routines on a staging site prior to doing this on your production store, to avoid any unforeseen issues unique to your store.
As we have been slowly rolling out this update, we feel like we have caught many of the common issues already, but if you do find one, please do not hesitate to reach out to our support team at https://easydigitaldownloads.com/support.