Customers can upgrade and downgrade their subscriptions, using the WooCommerce Subscriptions switching feature.
We recommend reading the Store Manager Guide to get a more general introduction to working with the Subscriptions extension. If you have a question not answered here, you may find answers in the Subscriptions FAQ.
Upgrading/Downgrading Subscriptions
Subscriptions version 1.4 introduced a new Subscription Switch feature, allowing your customers to upgrade, downgrade or cross-grade between different subscription products.
Switching is possible between variations of a Variable Subscription product, or Simple Subscriptions within a Grouped product, depending on the settings you choose. It is also possible to change quantities on a product using the switching process.
This document covers all of the information involved in the Switch process to help clarify what happens when you allow customers to switch between subscription products and how you can configure the Switch feature for your store’s requirements.
Switch Settings
WooCommerce Subscriptions provides a range of options for customizing the switching process. To access Switching settings, go to: WooCommerce > Settings > Subscriptions.
Allow Switching
Customers are unable to switch between subscriptions by default. The Switching setting can be used to allow customers to:
- Switch from one subscription variation to another (within the same Variable Subscription)
- Switch from a subscription in a Grouped product to any simple subscription within that grouped product
- Switch between both of the above
A subscription may be switched if it is active but will require payment if it is switched from a free to paid subscription so future payments can be processed automatically (unless the store has disabled automatic payments). Customers cannot switch subscriptions that are on hold or pending cancellation.
Prorate Recurring Payments
You may opt to have Subscriptions charge or credit a customer for the difference between two subscriptions when they choose to switch to a subscription with a different recurring payment or billing period.
Never Prorate Recurring Payments
Subscriptions will never prorate the recurring payment by default. That means a customer can switch to a new subscription, without paying anything until the next payment is due. This is most suitable for subscriptions to physical items where the cost of the subscription is incurred at time of renewal.
If you choose to never prorate recurring charges, the first payment for the new subscription is charged when the next payment for the old subscription was due.
For example, if a subscription to a 3 Widgets/month product was purchased on the 15th July, and on the 1st August a subscriber switches to a 6 Widgets/month subscription, his next renewal payment is charged on the 15th August.
Similarly, if on the 1st September the same subscriber switches to a 3 Widgets/week subscription, the next renewal will still be on the 15th September, despite the new subscriptions billing period being shorted. Only after that first payment on the 15th September will the subscription start to renew weekly.
Prorate for Upgrades Only
If you do not want to prorate the amount a customer has paid when downgrading a subscription, you can choose to only prorate upgrades.
For example, when only upgrades are prorated, if a customer is subscribed to a $50/month subscription renewing on the 1st of each month and chooses to downgrade to a $20/month subscription, the customer is charged nothing at the time of switch and the next renewal payment happens on the 1st day of the following month. Whereas when downgrades are prorated, the customer receives additional time before the next payment is due, so the next payment occurs after the first day of the following month.
This setting also allows you to use cheaper subscriptions as a form of suspension. For example, if a customer is currently subscribed to a $90/month membership but wants to put the membership on hold for 3 months, you can choose to only prorate upgrades and tell the customer to switch to a $15/month subscription until ready to resume the normal subscription. If using non-prorated downgrades to charge for suspensions, you should also disable customer suspension.
Prorate for Virtual or All Subscription Products
If selling services, memberships or other virtual goods, you may want to begin charging at the new subscription’s rate immediately. This is when prorating the recurring payment makes sense.
As a result, you can choose to prorate only for Virtual subscription products or if you want to always charge the customer the rate of the subscription to which they are currently subscribed, you can choose for All Subscription Products.
Section 4 of this guide provides in depth information about how a recurring payment is prorated.
Prorate Signup Fee
A customer never pays a signup fee when switching to a new subscription by default, regardless of whether the new subscription product’s signup fee is higher or lower than any signup fee paid for the current subscription.
You can choose to charge the full signup fee whenever switching to a new subscription, meaning a customer receives no credit for any signup fee paid on the current subscription. This is useful when the signup fee is to cover the cost of setting up a subscription, such as shipping items required for using the subscription.
Finally, you can choose to charge a customer the difference between two signup fees when switching to the new subscription. If you choose to always prorate the signup fee, they are only charged the difference between the two signup fees when switching to a new subscription with a signup fee higher than the signup fee paid for the current subscription,
Prorate Length
Subscription lengths are not prorated by default. This means if a customer switches to a monthly subscription with a length of 12 months, the new subscription will schedule 12 additional payments before expiration, regardless of the number of payments completed on the old subscription.
However, if a subscription is for a defined length, such as 12 months, you can credit the customer for the number of payments completed on her old subscription when switching to a new subscription by enabling length proration.
For example, a customer signed up for a 12-month subscription 4 months ago, so 4 payments have been completed on that subscription. The customer now wants to upgrade to a different subscription that also has a length of 12 months. If the store is configured to prorate length, the new subscription will only charge 8 additional payments, one month apart, before expiring.
Choose to prorate subscription lengths for virtual products only or for all subscription product types. Determining whether a product is virtual is based on the state of the new subscription at the time a customer initiates the switch, not when the customer originally purchased the current subscription.
Switch Button Text
Customize the button text displayed next to a subscription using the My Subscriptions table.
Upgrade or Downgrade is displayed by default, but you may change this to Switch Subscription, Change Subscription or any descriptive text that suits your store.
Switching Process
To switch subscriptions, your customer completes a checkout process similar to the standard WooCommerce checkout process. Learn more about what a customer experiences during this process in the Switching Subscriptions section of the Subscriber’s View document.
Switching Costs
A switch can be classified in one of three categories:
- Upgrade: changing to a subscription that is more expensive on a daily basis.
- Downgrade: changing to a subscription that is cheaper on a daily basis.
- Cross-grade: changing to a subscription with the same price per day.
When prorating prices for each of these categories, two pricing mechanisms may be used to adjust any unrealized value of the current subscription:
- first payment date: date on which the first recurring payment is charged for the new subscription; and
- gap payment: an amount charged at the time the subscription is changed, plus any signup fee.
The two pricing mechanisms are used differently, depending on the category of the switch. The following sections explain how the two elements of billing terms are affected when switching between subscriptions in each category.
Cross-grades
Cross-grades are the simplest category of subscription changes. Because the two subscriptions have the same price per day, no gap payment is required, nor are any changes to the first payment date.
This table illustrates the prorated value for cross-grades based on billing period of the new subscription.
NEW BILLING PERIOD | PRICING MECHANISM | PRORATED VALUE |
---|---|---|
Shorter | First payment date | Existing subscription’s next payment date |
Gap Payment | None | |
Same | First payment date | Existing subscription’s next payment date |
Gap Payment | None | |
Longer | First payment date | Existing subscription’s next payment date |
Gap Payment | None |
Downgrades
Downgrades may require the first payment date to be extended to credit a subscriber for an amount not yet realized in the time they have been subscribed to the current subscription.
This table illustrates that the new subscription’s first payment date may need to be changed, and also when it will be changed, depending on the new subscription’s billing period.
NEW BILLING PERIOD | PRICING MECHANISM | PRORATED VALUE |
---|---|---|
Shorter | First payment date | Based on number of days the customer has pre-paid (i.e. amount of days at the new subscription’s price per day, which the customer receives for the amount paid at the last billing period). |
Gap Payment | None | |
Same | First payment date | Based on number of days the customer has pre-paid (i.e. amount of days at the new subscription’s price per day, which the customer receives for the amount paid at the last billing period). |
Gap Payment | None | |
Longer | First payment date | Based on number of days the customer has pre-paid (i.e. amount of days at the new subscription’s price per day, which the customer receives for the amount paid at the last billing period). |
Gap Payment | None |
Downgrade Example
A customer subscribes to a $10 per month subscription via your site on 2nd September. Twelve (12) days later, he wants to downgrade the subscription to be billed less frequently.
He chooses to switch to a yearly subscription that is charged at $10 per year. Notice that although the recurring amount for the new subscription is the same as that of his current subscription, the price per day is cheaper – $0.03 per day for the new subscription vs. $0.33 per day for the current subscription.
As the customer is switching 12 days into his subscription, he has completed ⅖ of this billing period, meaning he has ⅗ remaining and is entitled to ⅗ of the new billing period. As a result, the first payment date is extended to April, which is just over 7 months into the future (⅗ of a year).
After completing step 1 and 2 of the switch process, the customer is presented with order totals on checkout in line with those seen in the image below.
Upgrades
Upgrades may require a gap payment to account for the remaining number of days on the customer’s existing subscription at the higher price per day of the new subscription. This payment is charged at the time the subscription is switched and is treated as a signup fee.
The first payment date for the new subscription also needs to be changed when upgrading to a subscription with a shorter billing cycle. For example, switching from a subscription charged monthly to a subscription charged weekly.
NEW BILLING PERIOD | PRICING MECHANISM | PRORATED VALUE |
---|---|---|
Shorter | First payment date | Based on number of days the customer has pre-paid (i.e. amount of days at the new subscription’s price per day, which the customer receives for the amount paid at the last billing period). Can be as early as the time of switch if customer has received more days then they have pre-paid at the new rate. |
Gap Payment | None | |
Same | First payment date | Gap payment charged immediately, then first renewal date is the old subscription’s next payment date |
Gap Payment | Days until next payment * ( New Price Per Day – Old Price Per Day ) | |
Longer | First payment date | Gap payment charged immediately, then first renewal date is the old subscription’s next payment date |
Gap Payment | Days until next payment * ( New Price Per Day – Old Price Per Day ) |
Changing the First Payment Date
It is important to change the first payment date date when upgrading to a subscription with a shorter billing period for two reasons. It:
- moves the subscriber to the shorter billing period as soon as possible; and
- prevents charging unnecessary, and potentially unreasonable gap payments.
For example, if the date is not changed and a customer switched from a $200 per year subscription to a $35 per month subscription with 7 months remaining on the new subscription, she would be required to pay a $245 gap payment, and the new subscription would not renew for 7 months. By changing the first payment date, the customer would not be charged any gap payment and the subscription renews monthly a month after the switch date.
Upgrade Examples
A customer subscribes to a $10 per month subscription with your site on 2nd September. Twelve (12) days later, she wants to upgrade the subscription.
They first look at switching to a weekly subscription that is charged at $7 per week. Notice that although the recurring amount for the new subscription is lower than that of the current subscription, the price per day is more expensive – $1 per day for the new subscription vs. $0.33 per day for the current subscription.
The new subscription’s billing period is shorter, one week vs. one month, so there is no gap payment, but the first payment date needs to be changed.
As the customer has been subscribed to the old subscription for 12 days, they received the equivalent of $12 worth of value at the new subscription’s price per day. As a result, they exhausted the $10 initially paid for the original subscription and the first payment is charged immediately on checkout. The next renewal payment is then scheduled for 1 week after this payment.
After completing step 1 and 2 of the switch process, the image below shows the order totals the customer is presented with on checkout.
Before completing the switch, the customer decides she doesn’t actually want to pay weekly, so returns to the product’s page and chooses instead to upgrade to a $15 per month subscription.
The new subscription’s billing period is the same as the old subscription, so the first payment date need not be changed, but there will be a gap payment.
There are 18 days between 14th of September, when the customer is looking to switch, and 2nd October, when the first recurring payment is charged. As a result, the gap payment is the difference between the price per day of the current subscription and the new subscription multiplied by 18. The new subscription’s price per day is $0.50 and the current subscription’s price per day is $0.33, or more precisely $0.333333333333. Therefore, the gap payment is $3.00 (after being rounded to two decimal places).
$3.00 = ( $0.50 - $0.33 ) * 18
When the customer arrives at checkout, they are presented with totals similar to the image below.
Prorating Free Trials
If your products have a free trial, the customer only receives access to the free trial for the initial signup, regardless of whether recurring amounts or signup fees are prorated.
For example, if a variation has 3 plans:
- $10/month with 1 month free trial
- $20/month with 1 month free trial
- $30/month with 1 month free trial
If a customer chooses the first plan, and then two months later decides to upgrade to the third plan, they are not provided with another month free trial.
Switching with Coupons
The normal checkout process is used to switch from one subscription to another. As a result, the way coupons are applied to switching is much the same as the way coupons are applied to standard subscription purchases.
The only difference is that cart, product and signup fee coupons are only applied if:
- the new subscription has a sign up fee
- the new subscription has a gap payment;
- the new subscription’s first recurring payment is charged at the time of the switch.
This is because these coupons can only be applied to an initial payment. When there is no initial payment, these coupons cannot be applied.
Existing Recurring Discount Coupons
If a customer applied a Recurring Discount coupon to an existing subscription, the discount from this coupon is not applied automatically to the new subscription at time of switch. To maintain the discount on the new subscription, the customer needs to apply the same coupon again or a new coupon.
Tracking Switches
When a customer switches a product on a subscription, the way that change is reflected on the subscription depends on a number of factors. This section explains how Subscriptions implements switching under different conditions. It then explains how to keep track of switches by using orders generated at the time of switch.
Updating Product Line Items
After a customer has completed a switch via the checkout, Subscriptions will reflect the switch by:
- Removing the original product line item from the existing subscription, as the customer is no longer subscribed to that product
and then:
- Adding the product as a new line item on the existing subscription if the new product is
- on the same billing schedule as the old product (e.g. both products renew every month); or
- on a different billing schedule, but the old product is the only line item on the subscription, and therefore, the subscription’s billing schedule can be changed to reflect the billing schedule of the new product without affecting any other items.
If neither of those two criteria are met, Subscriptions creates a new subscription and adds the product as a line item on that subscription.
This logic, although complicated to follow, helps reduce the number of new subscriptions in your store and makes it easier to manage and track the full lifecycle of a subscription, regardless of specific product items associated with that subscription. However, keeping track of switches requires additional steps because it means that on some occasions a new subscription is created, while on others the existing subscription will be updated.
Subscription Notes
After a customer upgrades or downgrades a subscription, it’s helpful to see which product the customer was original subscribed to and which product they upgraded or downgraded to.
When the customer completes a switch, Subscriptions logs a note on the subscription. This note includes the old product’s name and the new product’s name, plus attributes for both products so you can keep track of switching between different variations.
For example, the screenshot below shows Subscription Notes on the Edit Subscription screen for a subscription that was switched from a product with a Length attribute of Six to a product with Length of Twelve, and then back again.
Switch Orders
To complete a switch, the customer uses the normal cart and checkout process. Because of this, an order is created that records the details of the switch. This order is created regardless of whether proration is enabled and a prorated amount is charged for the switch or the switching cost is zero.
These orders provide a way to keep track of switch details not recorded in Subscription Notes, such as switching cost and payment method.
The screenshot below highlights the Related Orders meta box on the Edit Subscription screen. There are two Switch Orders in this meta box that were created to record the customer’s switches. Clicking the Order Number for either order will open the Edit Order screen and display full details of the switch.
History of Switch Tracking
In Subscriptions version 1.5 and older, switching a subscription from one variation or grouped product to another always created a new subscription and set the status of the old subscription to switched. This was changed in version 2.0 to prevent rewriting history. Previously a subscription’s details were stored on the order used to purchase the subscription, but orders are meant to be a snapshot of the past so should not be modified.
Due to technical changes in version 2.0, it became possible to update the product on the existing subscription, which made it possible to process a switch without losing the history of the existing subscription. Further, because a subscription may now contain multiple product line items, switching needed to be updated to be per item instead of per subscription.
Because of these changes, you may find older subscriptions, switched prior to October 2015 when Subscriptions v2.0 was released, that include both a Switch Order and Switched Subscription in the Related Orders meta box.
Catch-all Variations
When creating subscription variations, if you want to offer customers a catch-all variation and different variations for specific attributes, make sure that the catch-all variation is the last variation on the product. You can drag-and-drop the variation to the bottom of the list of variations on the Edit Product screen.
Leaving a catch-all variation as the first variation on the variable product leads WooCommerce to always use that variation as the item chosen for an order. This causes two issues: variation data is incorrect, and switching between variations is impossible.
Incorrect Variation Data
When using a catch-all variation as the first variation on a product, if a customer attempts to purchase a variation, WooCommerce always uses the price and other meta data of the catch-all variation rather than the variation with matching terms.
For example, consider a variable product with a Color attribute and four variations:
- Green variation for for $15
- Black variation for for $10
- White variation for $20
- Catch-all variation with the price of $1,500
Regardless of whether the customer chooses Black, Green or White, the price is $1,500 because WooCommerce always uses the catch-all variation price.
Changing Quantities
In addition to switching between different products or variations, it is also possible to switch between different quantities of the same product or variation. This is useful to allow customers to change the quantity of items on their subscription.
For example, if a customer is subscribed to 2 bags of coffee per month, but finds she needs more to get through the month, she can use the switching process to upgrade her subscription to receive 3 bags of the same coffee with the next renewal and all future renewals. If she later finds 3 bags is too many, she can downgrade to just 1 bag of coffee.
Switching costs will be calculated in the same way they are calculated for switching between different products. For example, if proration of recurring amounts is enabled, a gap payment may be charged for increasing the quantity of the subscription at the time of the switch. This is most useful for changing quantities on virtual products, where value is provided each day the customer is subscribed, rather than physical items, where the value is provided at the time of their next renewal.
Quantity Upgrade Example
On the 15th May, a team leader orders a $50 per month product to access electronic course content. He orders a quantity of 5 to provide part of his team with access, so pays $250 up-front, and is subscribed at $250 / month after that.
After the first 10 days, the team leader decides to upgrade the subscription to enroll another 5 members of his team, for a total quantity of 10. He completes this upgrade on the 25th May, 10 days after the initial sign-up.
Despite the subscription being for the same product, because of the different quantity, the price per day will be different. Specifically, for the $50 / month product, the price per day for the subscription with a quantity of 5 is $8.21. The price per day for a quantity of 10 is $16.42.
As proration is enabled in the store, Subscriptions will charge the team leader a gap payment at the time of the switch. This gap payment is determined using the formula explained in the Upgrade section on Switching Costs: Days until next payment x ( New Price Per Day – Old Price Per Day )
.
As the switch occurs 10 days after sign-up, there are just over 20 days left in the monthly billing cycle. This means the formula is evaluated as 20.63 x ( 16.42 – 8.21 ).
Using this formula, the total gap payment will there be $169.40.
After completing step 1 and 2 of the switch process, the image below shows the order totals the team leader is presented with on checkout, including the gap payment.
FAQ
Why is the price per day used to determine a switch’s classification as an upgrade, downgrade or cross-grade?
As mentioned in the section on switching costs, a switch can be classified as an upgrade, downgrade or cross-grade. This classification is based on the price per day of the existing and new subscription product’s terms.
Price per day is used to determine the switching cost because there is no other way to accurately determine the type of switch when a customer could cancel or switch the subscription before the end of the new subscription’s billing period.
For example, if a customer switches from a $10 / month subscription to a $15 / year product, the price for the next subscription is higher. As a result, it may appear to be an upgrade when considering only the price and ignoring the billing period. However, if the customer only remained subscribed to the $15 / year subscription for one week and then cancelled the subscription or switched to a different subscription, they would have only used around $0.28 cents worth of value for that subscription, which is less than the $2.10 amount of value they would have consumed if they remained subscribed to the subscription with the lower price. As a result, the switch to the new subscription must be considered a downgrade.
How can I change the upgrade, downgrade or cross-grade text displayed to the customer during a switch?
When switching a subscription, the customer is presented with an explanation of the type of switch next to the cart subtotal for that item. For example, if switch to a subscription with a higher price per day, (Upgrade) will be displayed next to the cart items subtotal.
To change this text, either to remove it completely or make it display something else, you can use the free Say What plugin.