Version 2.13.1 — June 25, 2025
- Admin: Allow the Subscription list table to be sorted by expiration date.
- Emails: Improved the subscription logic when sending reminders for months with different numbers of days.
- Orders: Corrected an issue where EDD Refund modal totals could be higher than the actual order amount when taxes are included in prices.
- Reports: Updated dashboard values to account for multi-currency settings.
- Subscriptions: Added support for PayPal to the magic payment update links.
- Subscriptions: Enabled expired subscriptions to be set to failing status.
- Upgrades: Improved notes migration to ensure valid timestamps.
- Dev: Resolved a fatal error when instantiating the subscriber class.
Version 2.13.0 — June 16, 2025
- NEW: The minimum requirements have been updated to PHP 7.4, WordPress 5.8, and EDD 3.2.12.
- NEW: Added a new ‘No-Login’ subscription update link for customers with Stripe Subscriptions.
- NEW: Subscription renewal and failure emails can now include a ‘No-Login’ link to update the payment method for Stripe subscriptions.
- NEW: Blocks – Add a new Subscriptions block for frontend management.
- IMPORTANT: This update will run database updates in the background. Depending on the number of subscriptions these may take a while to complete, but your site will remain fully functional while they are running.
- Admin: Fix incorrect pagination when filtering by download.
- Admin: Scripts were throwing deprecation notices.
- Admin: Update “Add New” text.
- Compatibility: Textdomain is now loaded at the correct time.
- Compatibility: Custom Prices – Update download metabox.
- Compatibility: Invoices – Update invoices integration/filter.
- Compatibility: Deprecation notices updated for admin scripts.
- Compatibility: WP_CLI: Fix WP_CLI reference.
- Compatibility: Software Licensing – Licenses table filter no longer unnecessarily gets the license object.
- Downloads: Renewing a multiple items order can take the wrong Download name.
- Downloads: Update recurring single price settings metabox.
- Emails: Fixed an issue where subscription reminder emails could still send for upgraded subscriptions.
- Emails: Fixed missing subscription admin notices.
- Hooks: Post renew hook expiration date now handled correctly.
- Hooks: Recurring email tag filters now trigger correctly.
- Reports: Added an ‘Active Subscriptions’ tile.
- Reports: Added ‘MRR’ and ‘ARR’ tiles to the Subscriptions report.
- Reports: Revenue breakdown now more accurately tracks renewals without a license.
- Reports: Update subscription exporter.
- Reports: Improved the Dashboard widget to show more helpful MRR and ARR calculations.
- Stripe: Cancelled subscription may not cancel in Stripe.
- Stripe: Confusing handling of failed subscriptions improved.
- Stripe: Fix for mismatch in gateway renewal date after price option upgrades.
- Stripe: Re-attempt to account for out-of-sync server clocks when sending billing_cycle_anchor.
- Stripe: Update Stripe scripts and fix subscription updates.
- Stripe: Cancelling a failing subscription now closes out Stripe invoices.
- Stripe: Improved the Stripe subscription update process.
- Stripe: Stripe payment method updates now handle 3DS authentication correctly.
- Stripe: Update Stripe subscription handling when failed.
- Stripe: Orders with Stripe Link may not have EDD subscriptions activated.
- Subscriptions: Reactivating a failed subscription may not charge customer.
- Subscriptions: Allow subscription states to be filtered.
- Subscriptions: Improve date display in the admin.
- Subscriptions: Fix handling of incomplete reactivation.
- Subscriptions: Move subscription notes to notes table.
- Subscriptions: Store Gateway now supports mixed carts.
- Subscriptions: Subscriptions list table now shows product name.
- Subscriptions: The subscription’s lifetime value is now more accurate.
- Subscriptions: Upgrade cancelled existing subscription before new order was complete.
- Subscriptions: Start storing cancellation date as subscription meta.
- Taxes: Fixed an issue where taxes were being calculated incorrectly for tax exclusive subscriptions.
- Trials: Multi-term trial expiration date is now set correctly.
Version 2.12.5.1 — November 22, 2024
- Fix: Improved discount support for Easy Digital Downloads 3.3.5+
Version 2.12.5 — August 5, 2024
- Downloads: Fixes an issue where deleting a customer email address could block access to a file download for a customer with an active subscription.
- Emails: Registers an admin renewal notification email for when renewal orders are received (requires EDD 3.3.0).
- Emails: Updates the email tag handling.
- Integrations: Updates the Software Licensing integration for logging when a license key is renewed.
- Orders: If a renewal order cannot be recorded, the subscription is not renewed.
- Settings: Updates the settings screen checkbox inputs.
- Dev: Dynamic properties are allowed on the
EDD_Subscription
class.
Version 2.12.4 — June 20, 2024
- New: Updated to integrate with EDD email management.
- Sessions: Improved integration with EDD user sessions for requiring user registration during checkout.
- Admin: CSS which replicates EDD core CSS has been removed.
- Subscriptions: Subscriptions which are expired, cancelled, or failing can no longer be set to failing from a webhook event.
Version 2.12.3 — April 11, 2024
- Checkout: the initial subscription amount could be incorrect with a Discounts Pro discount.
- Admin: In certain cases, Recurring could cause a deprecation notice in the EDD dashboard widget.
- Dev: Helper functions have been added for getting a subscription and subscriber from the database.
- Dev: The subscriptions table indexes have been updated to improve performance.
- Translations: All localized strings/comments have been updated for easier translation.
Version 2.12.2 — February 28, 2024
- Checkout: Repeat trial messaging could show incorrectly.
- Renewals: For stores with inclusive taxes, renewal order subtotals could show incorrectly, affecting refunds.
- Renewals: Stores collecting addresses with orders could have incomplete address data for renewal orders.
Version 2.12.1 — February 16, 2024
- Fix: Purchasing a subscription for some stores with taxes enabled was not calculating subscription amounts correctly.
- Fix: Renewal orders were not being assigned sequential order numbers when that was enabled.
- Admin: Documentation links have been updated to go directly to relevant docs.
- Dev: Saving a variable price download with recurring enabled has been updated for PHP compatibility.
Version 2.12.0 — February 6, 2024
- Reports: New! Introducing the Revenue Breakdown report, giving insights into gross revenue for new, renewal, and upgrades (with Software Licensing).
- Compatibility: Improved PHP 8.0/8.1/8.2 support.
- Checkout: Improved multi-currency support.
- Dashboard: Added a filter to the subscription count arguments in the Dashboard Widget.
- Downloads: Improved the reliability of being able to download files if the “Limit File Downloads” setting was enabled.
- EDD 3.0: Improved migration when upgrading from EDD 2.x to EDD 3.x.
- Emails: Improved email tags with Subscription ID merge tag.
- Emails: Improved settings screens for Subscription renewal and expiration reminder emails.
- Performance: Improved the performance of getting the lifetime value of a subscription.
- Software Licensing: Fixed a situation where getting the license of a subscription could sometimes return a child license for bundles.
- Stripe: Completed subscriptions could end up in the ‘cancelled’ status instead of remaining in ‘completed’ for subscriptions that only bill a certain number of times.
- Stripe: Improved messaging when cart contains conflicting items.
- Subscriptions: Improved CSS Styling for Admin Subscription management views.
- Subscriptions: Improved support for custom columns in the Subscriptions list table.
- Subscriptions: Improved the cancellation link logic to not allow cancelling a subscription when in a state that could cause issues if cancelled.
- Subscriptions: Improved support for custom sections when managing subscriptions from the admin.
- Dev: Recurring now requires PHP 7.2, WordPress 5.4, and EDD 3.1.5.
Version 2.11.11.1 — August 7, 2023
- Fix: Revert cancelled subscriptions past their expiration date from having their status updated to ‘expired’ to avoid possible looping of status updates.
Version 2.11.11 — July 26, 2023
- Fix: One time discounts did not correctly update the cart total.
- Fix: Stripe actions could run for subscriptions for other gateways.
- Dev: After payment actions are updated to use new functionality scheduled for EDD 3.2.
Version 2.11.10.1 — July 21, 2023
- Automatic license renewals could incorrectly cancel subscriptions.
Version 2.11.10 — July 19, 2023
- Important: Recurring Payments now requires a minimum of WordPress 4.9 and Easy Digital Downloads 3.0.
- Improvement: PayPal Commerce subscriptions have be updated to correctly cancel the subscription after two failed payment attempts. Existing subscriptions will be updated accordingly.
- Improvement: Recurring reports in EDD 3.0+ have been updated to accurately group orders based on the store time zone.
- Improvement: Cancelled subscriptions past their expiration date will now be marked as expired. Developers using the
edd_subscription_expired
hook will want to check their code. - Fix: If
edd_get_receipt_page_uri
is available, the transactions shortcode did not link to the correct receipt. - Fix: Existing users who were not already customers were prevented from purchasing in some scenarios.
- Fix: Refunding a subscription would send a cancellation email.
- Fix: Expiration notices were still emailed when a subscription was refunded.
- Fix: The Content Restriction integration could allow users to all variations rather than those expressly set.
- Fix: Recurring discounts now work with free trials.
- Fix: Stripe cancellation errors no longer show markup in subscription notes.
- Fix: A failing subscription that is cancelled in Stripe was not correctly cancelled in EDD.
- Fix: Cancelling a subscription in Stripe did not update the subscription in EDD.
- Fix: Querying subscriptions with a
null
price ID did not return subscriptions for single-price products. - Fix: If a free trial was in the cart and a discount was added, the cart total was incorrect.
- Fix: Upgrading or renewing a licensed product could cancel the existing subscription prior to the new subscription being created.
- Fix: Some users were incorrectly denied access when limiting downloads to active subscribers.
- Dev:
get_page_by_title
was deprecated in WordPress 6.2; Recurring now usesWP_Query
directly. - Dev: The plugin installation and upgrade process has been improved to reduce the load on a website.
- Dev:
edd_recurring_add_payment_pre_args
has been added for developers who need to modify payment details before adding renewals to the database. - Dev: The database query methods have been updated to ensure consistency between getting and counting subscriptions.
Version 2.11.9 — February 9, 2023
- New: Recurring now registers subscription specific capabilities to allow for better role management and access to subscriptions.
- Improvement: Allow dates to be defined when adding a new renewal order.
- Improvement: Software Licensing discount calculations have been revised to be correct and work with cart discounts.
- Fix: Currencies were not always properly displayed in the order details on sites with multiple currencies.
- Fix: Renewal orders were not always linked to the correct email after a customer updated their email address.
- Fix: The subscription order status has been added to the list of deliverable order items statuses.
- Fix: An error could occur on the order details screen if orders were considered part of a subscription but a subscription did not exist.
- Fix: The license renewal link on the subscription details screen did not display correctly.
- Dev: An unneeded legacy filter for PDF Invoices has been removed.
Version 2.11.8.1 — November 11, 2022
- Improvement: It is now possible to manually add a subscription with a $0 initial amount.
- Fix: The Stripe express checkout could cause PHP notices when Recurring loaded.
- Fix: The discount check could error in EDD 2.x.
- Fix: The updated admin script might not have loaded due to caching.
- Fix: The Stripe gateway could cause a fatal error with one time trials.
- Dev: Unnecessary files have been removed from the vendors directory.
Version 2.11.8 — November 9, 2022
- New: Subscriptions can now be exported to a CSV file.
- New: The subscriptions table now has a filter bar to filter by product or subscription status.
- New: The subscription_details email tag has been registered for purchase receipt emails.
- New: subscription_details, subscription_period, and subscription_term email tags have been registered for the renewal and expiration emails.
- New: One time discounts can be enabled on an individual discount basis.
- Improvement: The admin subscription forms have been completely rewritten to be more accessible, responsive, and intuitive.
- Improvement: The subscriptions tables have been updated to be more consistent with WordPress and EDD.
- Improvement: Subscriptions now have their own tab when viewing customer details.
- Fix: In EDD 3.0, updating the customer for an order did not update the related subscription.
- Fix: The Content Restriction integration could have had an undefined variable.
- Fix: In certain cases, the order items migration appeared to never stop, even though it was done.
- Fix: It is now possible to purchase a product with a free trial using PayPal Commerce.
- Fix: When erasing a customer’s data, active subscriptions are now cancelled automatically.
- Dev: The minimum PHP version is now 5.6; the minimum EDD version is 2.9.
- Dev: How the plugin loads has been updated.
Version 2.11.7 — May 31, 2022
- Improvement: The payment method update form now uses the Stripe action hook to load the credit card form instead of calling it directly.
- Change: The EDD Subscriber role will not be registered for new installs.
- Change: Renewal orders will now be assigned a unique payment key.
- Fix: The EDD Subscriber role capability was not correctly registered.
- Fix: Manually creating a subscription for a single price product could throw a PHP notice.
- Fix: If a renewal transaction failed in PayPal Commerce, it was not marked as failed in EDD.
- Fix: Manually creating a subscription did not set the correct payment mode when test mode was enabled.
- Dev: The subscriptions count method used an ambiguous column reference for the primary key.
- Improvement: EDD 3.0 – subscription information will be moved to the order details tabs.
- Fix: EDD 3.0 – the Stripe gateway now checks for the `complete` order status when checking if a subscription can be reactivated.
- Fix: EDD 3.0 – Renewal orders were setting an incorrect price ID for single price products.
- Fix: EDD 3.0 – Renewal orders no longer run ledger functions to update download/customer statistics.
- Fix: EDD 3.0 – The edd_subscription order status has been added to the arrays of complete, refundable, net, and gross order statuses.
- Fix: EDD 3.0 – Manually added subscription orders did not set the correct order item status.
- Dev: EDD 3.0 – Order items in will be migrated to have the correct status. This affects existing 3.0 installs only.
- Dev: EDD 3.0 – Unit tests have been updated for EDD 3.0 compatibility.
Version 2.11.6 — February 8, 2022
- Fix: The transaction list in the edd_subscriptions shortcode now shows the correct date.
- Fix: Content Restriction — The active subscription check for a specific product in the shortcode attributes has been fixed.
- Change: Content Restriction — When the subscription parameter is added to the shortcode, the Content Restriction messages are used if a user does not have access to the content.
Version 2.11.5 — January 26, 2022
- Improvement: The “View Invoice” link on the front-end subscription page has been replaced with a “View Transactions” link. This allows the customer to view all transactions associated with a subscription, instead of just the first one.
- Improvement: Stripe – Activate EDD subscriptions via webhook. This fixes an edge case scenario where the Stripe payment was taken but the EDD subscription was not activated.
- Fix: Content Restriction – When using the edd_restrict shortcode, the message parameter was ignored when subscription check is set.
- Fix: Content Restriction – The edd_restrict shortcode wasn’t working well when using a mixture of recurring and non-recurring products.
- Fix: PayPal – Subscription status incorrectly changed to “expired” after subscription has completed. (When using the “Times” field.)
- Fix: Renewal payments don’t show the subscription status on the admin Payment Details page.
- Fix: Add an additional check to ensure renewal reminders are not sent for cancelled subscriptions.
Version 2.11.4 — December 7, 2021
- Refactor: Recurring email settings have been moved to the “Emails” tab in their own section.
- Refactor: Recurring settings have been moved to the “Payments” tab if you’re on EDD 2.11.3 or higher.
- Improvement: Allow all email template tags (including ones from EDD core and other extensions) to be used in recurring payment emails.
- Improvement: When viewing a payment that has an associated subscription, the status of that subscription is now shown next to the ID.
- Improvement: Better error message logging when the PayPal Commerce PAYMENT.SALE.COMPLETED webhook fails.
- Fix: Potential undefined index error when calling edd_get_settings_tabs().
- Fix: The cron job that auto updates subscription statuses to “expired” now also checks for “trialling” subscriptions in addition to “active” ones.
- Fix: PHP notice when downloading a file under certain circumstances.
- Fix: PHP warnings when viewing a subscription whose parent payment has been deleted.
- Dev: Refactor how licensing gets instantiated.