1. Documentation /
  2. What’s New in Subscriptions 2.3

What’s New in Subscriptions 2.3

WooCommerce Subscriptions is a premium WooCommerce extension
This new version includes four main new features, performance enhancements, and other fixes and updates. 2.3 is a “minor” release and should be backwards compatible with sites running WooCommerce Subscriptions 2.0 and above. In order to ensure a smooth update process, please refer to the Subscriptions Upgrade Guide.

Required WooCommerce Version

↑ Back to top
This version of WooCommerce Subscriptions requires WooCommerce version 2.6 or newer. If your site is not running WooCommerce 2.6 or newer, please update WooCommerce before updating Subscriptions.

New Features

↑ Back to top

Charge full price at time of sign up for synchronized products

↑ Back to top
On the WooCommerce > Settings > Subscriptions screen, under the Synchronization heading there is an option to “Prorate First Renewal”. There is a new option in this dropdown that allows store managers to set their store to charge the full amount of the product at sign-up, no matter the date. Subscription Synchronization Full Price at Sign Up Setting
To read more about subscription synchronization and to learn about other renewal synchronization settings, take a look at our Subscription Renewal Synchronization Guide.

Create limited subscription payment coupons

↑ Back to top
When creating a coupon for recurring products, a field labeled “Active for x payments” will be displayed. The default will be blank, meaning that the coupon will be active for the duration of the subscription. Filling in this field with a number will ensure that the coupon is only active for that number of payments, including the initial payment. Once the coupon has reached its limited number of payments, it will be automatically removed from the subscription. For more information on limited coupons, see the Limited Subscription Payment Coupon guide. Limited Subscription Payment Coupon Setting

Allow customers to renew early

↑ Back to top
On the customer’s View Subscription page, there will be a button labeled “Renew Now”. After pressing this button, customers will be taken through the checkout process to pay for their renewal immediately. Upon successfully completing the early renewal, the subscription’s next payment date will be pushed forward the appropriate amount of time. For example, if a subscription renews monthly on the 5th and the next payment date is August 5th. On the 26th of July, if the customer decides to renew early, the next payment date will account for this renewal and be changed to September 5th. Renew Subscription Early Button For the renew now button to be displayed:

  • the early renewal feature will need to be enabled from the WooCommerce > Settings > Subscriptions screen.
  • the subscription will need to have an active status.
  • the subscription will need a recurring price (excludes subscriptions which are free).
  • there must be a next payment date.
  • the payment gateway used to purchase the subscription must support subscription date changes.
  • the subscription will need to not contain any synchronized products.
  • the subscription must not currently be in a trial period, if one exists.
This feature can be enabled or disabled on the WooCommerce > Settings > Subscriptions screen under the “Renewals” section. Early renewal will be disabled on existing stores and enabled on new stores by default.

Link a subscription to a parent order

↑ Back to top
On the Edit Subscription screen, below the subscription status, there is now a field that lists the parent order number or an empty dropdown field. Subscription Parent Order Display If the field is empty, you may click on the dropdown in order to search for and choose an order to become the parent order for the subscription. While searching, only orders which belong to the subscription customer will be listed. The orders are listed by number. Select Subscription Parent Order A pending parent order can also be created from a subscription. An invoice for this order could then be sent to a customer, which will activate the subscription when paid. In the “Subscription actions” box on the right side of the Edit Subscription screen, there is an option in the dropdown to “Create pending parent order.” Add Pending Subscription Parent Order

Performance

↑ Back to top
Subscriptions strives to meet the needs of a broad range of businesses, including those who grow to large scales. These performance changes reduce the potential for growing pains and improves Subscriptions for everyone.

A persistent cache of subscription related order IDs

↑ Back to top
When retrieving a list of related orders for a subscription, there sometimes has to be a query to the database to get these related orders. This can be slow, especially on large sites. Subscriptions 2.3 adds a persistent cache of related orders that updates without having to query the raw data to avoid this performance bottleneck.

A persistent cache of customer subscriptions

↑ Back to top
Similar to the above, running a query to find a customer’s subscriptions can be slow, especially on large-scale sites. By creating a persistent cache of a customer’s subscriptions, performance is improved for retrieving a list of customer subscriptions.
The result of these changes will vary between stores, however, in our testing, removing these queries can reduce the time taken to process a renewal by as much as 20%.

Update Action Scheduler

↑ Back to top
Action Scheduler is a library used by Subscriptions to run actions at certain times. Many updates have been made to Action Scheduler, especially to enhance performance on a large scale. Action Scheduler 2.0 will be included as part of Subscriptions 2.3
To learn more about the changes coming with Action Scheduler 2.0, take a look at our Action Scheduler 2.0 wiki post.

Boost performance of admin subscription search

↑ Back to top
When searching subscriptions from the admin screen, the billing and shipping addresses are included in the fields searched. Prior to WooCommerce 3.0, these fields were many and separate. The billing and shipping addresses have since had a field added that is a combination of the other fields to allow for better search performance. WooCommerce Subscriptions 2.3 takes advantage of those fields to improve admin subscription search performance.

But wait there’s more!

↑ Back to top
  • Repair subscriptions that have been suspended in PayPal but not in WooCommerce. This problem persisted from Subscriptions version 2.1.4 until version 2.2.8, when this bug was fixed. While the root issue was fixed, the already affected subscriptions would still be out of sync with PayPal. This script will align the WooCommerce subscription statuses with the PayPal statuses.
  • Remove one-time fees from renewals. This especially applies in cases when fees are added by third parties.
  • Improve subscription report accuracy by excluding trashed subscriptions from report calculations.
  • When a recurring coupon type is applied to a cart which only contains synced subscription products or products with a free trial, hide the coupon in the initial cart since it doesn’t apply any perceivable discount.
  • Only allow switching between products which are visible to the customer.
  • Improved the performance of getting a variable subscription product’s min and max price data. This should reduce the time it takes to load shop product archive pages.
  • We’ve added new sections to the system status including an overview of the site’s subscriptions statuses, whether the store has been connected to a WooCommerce account, whether the site has custom retry rules, and a payment gateways section.
Subscriptions 2.3 New System Status Sections

For Developers

↑ Back to top
  • Ensure pre-WooCommerce 3.0 subscriptions have billing and shipping address indexes.
  • Change created_via meta on renewal orders to remove possible conflict between hold stock setting and retry system order cancellation.
  • Add $cart and $order arguments to woocommerce_checkout_create_subscription filter.
  • Remove TLC transients library and cache manager in favor of using WordPress transients.
  • Refactor code for date columns on subscriptions table.
  • Requires PHP 5.6 or newer.
  • Add a filter to allow third-parties to filter orders by custom order types.
  • Add filter to control automatic single subscription redirect on customer account page.
  • Deprecated the wcs_pre_get_users_subscriptions filter.
For a complete list of the changes coming in 2.3, see the changelog.