WooCommerce Subscriptions

WooCommerce Subscriptions 9.0.0

No permission to download
* Add: All Products for Subscriptions is now built into WooCommerce Subscriptions — sell any product as a one-time purchase, a subscription, or both, with no separate plugin needed. Existing installations migrate automatically, so you can deactivate the standalone plugin. We've also enhanced it along the way:
* Subscription plans now support free trials, sign-up fees, and fixed-amount discounts.
* Choose which storewide subscription plans are assigned to a product.
* Disable one-time purchases on products that use storewide subscription plans.
* Subscription gifting now works with products sold via subscription plans.
* Bulk edit now supports updating purchase options, so you can apply storewide plans to specific products in bulk — replacing the deprecated "Limit to categories" option.
* Improved billing-date-alignment settings (formerly Synchronization), with clearer first-billing options.
* Subscription frequency and expiration are clearer — expiration is now set as a number of payments ("Total payments") rather than a length of time.
* The Subscriptions by Product report now includes products sold via subscription plans.
* Fix: Schedule dates set to the same minute (e.g. trial end and next payment) are now treated as equal, instead of differing by a few seconds and silently reverting the save.
* Fix: The schedule editor's warning for a next-payment date set before the trial end now reads "Please enter a date after the trial end" instead of incorrectly referring to the start date.
* Fix: The My Account > Subscriptions page no longer intermittently 404s right after the plugin is activated.
* Fix: $0 subscription switches made within the renewal-sync grace period are now auto-completed instead of left pending.
* Fix: Related orders for active subscriptions are no longer swept by the privacy eraser when HPOS is enabled.
* Fix: When a customer's subscription becomes active or inactive, their user role now switches cleanly per your settings instead of leaving the old role in place.
* Fix: Paying for the renewal of a gifted subscription with multiple items no longer drops all but the first item.
* Fix: Guarded `wcs_get_subscription_period_strings()` and `wcs_get_subscription_trial_period_strings()` against PHP 8.1+ "Undefined array key" warnings when an integration uses the `woocommerce_subscription_periods` / `woocommerce_subscription_trial_periods` filter to remove a period.
* Fix: PHP warning on the Subscriptions by Customer report when a customer account has been deleted or anonymized.
* Fix: Prevent spurious cancellation emails when never-activated auto-draft subscriptions are deleted.
* Fix: Don't re-apply the product sign-up fee to renewal, resubscribe or switch order line items when those orders are updated via the Orders REST API, which previously inflated their stored totals.
* Fix: Prevent the "Limit to one active subscription" setting from being bypassed by paying for an old failed order, which previously let a customer who already had an active subscription end up with a second one.
* Fix: Email template theme overrides are no longer reported as "out of date" in WooCommerce > Status when the override matches the plugin's template.
* Fix: Free trials one period long now read "1 week" instead of "week".
* Tweak: Subscription products now show the free trial and sign-up fee on their own lines below the price, instead of appended to the price text.
* Dev: The `subscription_renewal`, `subscription_switch` and `subscription_resubscribe` query args are now supported when HPOS is enabled.
* Fix: Restore PayPal Standard renewal payments. A regression in 8.8.0 stopped these payments from being recorded, leaving the affected subscriptions stuck in Pending.
* Fix: Prevent a fatal error that could occur when the new "Dedicated processing" setting is enabled before any subscription background tasks have been scheduled.
* Fix: Correct remaining class-name casing mistakes exposed by the 8.8.0 classmap autoloader, which could cause fatal errors.
* Add: Resolve action for the Subscriptions Health Check tool — review a flagged subscription and apply the recommended fix (switch to automatic renewal, or process the renewal now).
* Add: Cancel button for in-flight Subscriptions Health Check scans, with partial scan results preserved in the candidates table.
* Add: New tools to improve scheduled action reliability, including supporting changes within the Health Check screen.
* Update: Subscriptions Health Check tool no longer owns the nightly-scan toggle; manage the schedule from WooCommerce > Settings > Subscriptions.
* Update: Subscriptions Health Check status bar — suppress Action Scheduler admin notices on the tab to avoid redundant or divergent past-due counts, keep the past-due actions link inside WC > Status, and refine card typography and spacing per design.
* Update: Subscriptions health check no longer reloads the whole page every few seconds while a scan runs; it updates the scan progress in the background and reloads only once the scan finishes or is cancelled.
* Update: Subscriptions Health Check candidates table now colours subscription status labels (Active, Expired, Pending Cancellation, etc.) consistently with the main Subscriptions list.
* Fix: Prevent fatal error in wp-admin from overly narrow argument type.
* Fix: Lowercase "in" in the relative date display (e.g. "in 2 days") for consistency with the existing "X ago" format.
* Fix: Subscriptions health check now shows live scan progress while a scan is running.
* Fix: Subscriptions health check empty-state message now references the correct "Run now" button label.
* Fix: Prevent cart errors during subscription switching when a prorated upgrade calculation encounters a zero-day billing cycle.
* Fix: Adding a subscription product to the cart while a Resubscribe or Subscription Switch for the same product is already in progress is now blocked with a clear error, preventing accidental duplicate line items.
* Fix: "Limit to one active subscription" is now enforced at the cart and checkout level, closing duplicate-subscription bypasses that previously slipped through to the order.
* Fix: Hide recurring-only coupons from block checkout initial order summary.
* Dev: When retrying a failed renewal with the same payment gateway, `update_payment_method()` is no longer called. This means `woocommerce_subscriptions_pre_update_payment_method`, `woocommerce_subscription_payment_method_updated`, and `woocommerce_subscription_payment_method_updated_to_{gateway}` no longer fire for same-gateway retries. Extensions needing retry-event notifications should use `woocommerce_subscription_failing_payment_method_updated`, which always fires.
* Dev: Class autoloading now uses Composer's classmap in place of the bespoke `WCS_Autoloader` / `WCS_Core_Autoloader` implementations. Both classes, and `WC_Subscriptions_Core_Plugin::get_autoloader()`, are retained as deprecated no-op shells under `includes/deprecated/` for back-compat with external integrations.
* Dev: Improved compatibility with jQuery 4.x, which is expected to roll out in a future WordPress release.
* Fix: Subscriptions health check — Renewal preference column sorting now groups rows by their displayed value, and a "Default" filter option has been added.
* Fix: Changing the payment details on a subscription could sometimes override the subscriber's renewal method choice when the 'Display the auto renewal toggle' setting is enabled.
* Fix: Updated the subscription switching flow to respect the renewal method choice on the subscription.
* Fix: Missing space between subscription price and billing period in the Cart and Checkout Blocks.
* Fix: Fatal error when setting a gift recipient on a manually created subscription with no parent order.
* Fix: Empty reminder timing causes fatal errors.
* Fix: Prevent browser autocomplete on subscription schedule inputs.
* Fix: Subscription checkout failing during DST spring-forward gap on servers with non-UTC PHP timezone.
* Fix: Remove the "Upgrade or Downgrade" button from gifting recipient emails where switching is not available.
* Fix: Schedule panel now displays actual stored dates instead of today's date for subscriptions with past dates.
* Add: Setting to show or hide shared downloadable products in subscription details. Disable to improve performance for subscriptions with many downloads.
* Fix: Fatal error on the View Subscription page when a subscription contains a deleted product and item removal is enabled.
* Fix: PHP warnings when HPOS Data Caching is enabled alongside WooCommerce Subscriptions.
* Fix: Added translation the billing period in the Cart/Checkout Block recurring total label for intervals of 2+. Changes ordinal phrasing ("every 2nd month") to cardinal ("every 2 months").
* Dev: Refactored how subscription price strings are built internally. No changes to pricing display.
* Add: New optional notification email to alert merchants when a customer reactivates a subscription they had set to cancelled.
* Update: Remove gender-specific language from the tooltip for the "Inactive Subscriber Role" setting.
* Fix: Prevent fatal error in PayPal Standard IPN handler when processing renewals after initial payment failure and related renewal order is deleted.
* Fix: When generating plain text emails, avoid outputting HTML within the order details area.
* Fix: List downloadable files within the 'processing renewal order' email, to better align with the corresponding parent order email.
* Fix: Resolve a React error across the storefront and other public pages, by preventing the re-initialization of gifting recipient containers.
* Fix: Allow merchants to activate subscriptions containing private products.
* Fix: Subscriptions created from carts with multiple products with different billing schedules now correctly calculate shipping eligibility based on their individual cart totals instead of the combined original cart total.
* Fix: Upgrade/downgrade button now displays correctly on its own line on the View Subscription page.
* Fix: Makes the "for x intervals" text (ie, "for 6 months") within the cart order summary translatable.
* Fix: Prevent duplicate subscription fields appearing in subscription product variations on a product edit page when WooCommerce's Cost of Goods Sold (COGS) feature is enabled.
* Dev: Removed unused legacy code for Woo core < 3.2.
* Fix: Resolved an issue that was preventing limited subscription renewals.
* Fix: Resolved a React-error that may occur when loading the spotlight welcome announcement for gifting.
* Fix: Updated WooCommerce's CSV product importer to correctly update subscription product prices.
* Add: Support for ajax add-to-cart flows from the single product page, when upgrading or downgrading subscriptions.
* Add: Enhanced functionality from the WooCommerce Subscription Downloads plugin has now been integrated directly into WooCommerce Subscriptions.
* Fix: Ensured the subject line for the "Customer Renewal Invoice" email correctly updates.
Back
Top