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