Update for Software Licensing brings significant performance improvement dedicated database tables, better management features, and numerous bug fixes

After an extensive beta period and four release candidates, Software Licensing version 3.6 is now available! This new version is the next iteration in a series of plugin updates we have been releasing that introduces dedicated database tables for eCommerce data. The migration of data into dedicated database tables significantly improves performance and adds greater flexibility and control for future enhancements.

As this is a major release that makes significant changes to the underlying data structure, we have chosen to roll out the update to customers slowly. At first the update will be made available to a select number of customers followed by a few more each day. This will allow us to watch out for issues that were not identified during the beta phase before all customers are updated.

New database schema

With version 3.6, we have introduced three database tables for license keys, license meta data, and license activations. After the update is installed, store owners will be shown a prompt to initiate an upgrade routine that will migrate the existing license data into the new, dedicated tables.

Once the migration is complete, all functionality related to license keys will have better performance, as will many related pieces of functionality, such as checkout and store administration.

The new database tables have the following names and columns:

wp_edd_licenses

  • id
  • license_key
  • status
  • download_id
  • price_id
  • payment_id
  • cart_index
  • date_created
  • expiration
  • parent
  • customer_id
  • user_id

wp_edd_licensemeta

  • meta_id
  • license_id
  • meta_key
  • meta_value

wp_edd_license_activations

  • site_id
  • site_name
  • license_id
  • activated
  • is_local

Added user role capabilities

Along with the performance improvements, Software Licensing 3.6 also includes better control over user role capabilities. We have added new capabilities to user roles so that store owners can better fine-tune the data and actions staff can access and perform.

  • view_licenses: Allows viewing the list table and details page of individual license keys. The capability has been added to the Shop Manager, Shop Worker, and Administrator roles.
  • manage_licenses: Allows modifying license data. The capability has been added to the Shop Manager, Shop Worker, and Administrator roles.
  • delete_licenses: Allows deleting license records. The capability has been added to the Shop Manager and Administrator.

Upgrade or downgrade price IDs on license keys

License keys with a variable price assigned to them can now have their price option edited from the Manage screen. This provides store owners and staff an easy way to upgrade or downgrade a customer’s license key from one option to another.

Download betas from the front-end

Beta version releases have been supported in Software Licensing since 3.5. In 3.6 we have improved the feature by adding support for displaying download links for available beta versions on the front-end in the customer account areas.

Other improvements

  • More information has been added to the Licenses list table.
  • 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-table class 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.
  • Removed final keyword from the EDD_SL_License class.
  • License export tool now uses batch processing API to avoid timeouts.
  • Upgrade and Renewal dates are now stored in License meta.

Notable bug fixes

  • Improved overall performance of license count checks.
  • Lifetime child license expirations are now tied to their parent licenses.
  • activate_license API 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 http.
  • Sample plugin now uses time() instead of current_time( 'timestamp' ).
  • Using the empty_cart function now removes any renewal session data.

There are two additional important notes for this update.

First,  license key counts will likely be different after the update is complete.

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.

Second, new purchases and license keys may be created normally during the migration.

While the data migration is running, your store will still be able to process payments and generate new licenses. This means your store will continue to operate normally and new customers will not be affecte by the data migration.

Comments

Joe

Does this result in any changes to the API calls or returns?

Reply

No, those are all the same, though they are faster now!

Reply
Esteban Truelsegaard

Hi, I’ll ask also related to the API calls, the new item_id field for the EDD_SL_Plugin_Updater is mandatory or previous calls continue working well ?

While I wrote I could see the migration hang up in the last step.. what can I do with it ? https://screenshots.firefox.com/BGAdNdN6L9aQsEU7/etruel.com
Is already has half an hour, I think.

Reply
Esteban Truelsegaard

I’ve fixed it with wp-cli and –force argument and all works wonderful.

Reply

Leave a Reply

Your email address will not be published. If you need technical assistance, please open a support ticket.