1. Documentation /
  2. Introduction to Woo Subscriptions /
  3. Subscription Switching Guide

Subscription Switching Guide

Customers can upgrade and downgrade their subscriptions, using the Woo 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

↑ Back to top

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, Simple Subscriptions within a Grouped product, and even variations from multiple Variable Subscription products that are all within the same Grouped product (depending on the settings you choose). It is also possible to change the quantity of a subscription by enabling the Woo Subscription option Allow Switching.

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

↑ Back to top

Woo Subscriptions provides a range of options for customizing the switching process. To access Switching settings, go to: WooCommerce > Settings > Subscriptions.

Allow Switching

↑ Back to top

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 between any Simple Subscription or Variable Subscription variations in the same Grouped product

Either way, all products must have Status set to Published to be available as switching options.

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.

When determining whether a subscription can be switched, the current state of the product is used. So if a subscription was purchased before it was added to a Grouped product, it can still be switched to other subscriptions if it is later added to a Grouped product.

Prorate Recurring Payments

↑ Back to top

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.

When determining if the price should be prorated, the current state of the new subscription product is used. That means, if you have chosen to only prorate recurring payments for virtual products, when a customer switches from a non-virtual product to a virtual subscription product, the price is prorated because the new product is virtual.

Prorate Signup Fee

↑ Back to top

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,

If the new subscriptions signup fee is lower than the old subscription’s, the subscriber is not credited for the difference, regardless of which option you choose.

Prorate Length

↑ Back to top

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.

Proration is based on the number of payments, not the amount of time since the start of the old subscription and the switch date. So if additional payments have been processed off-schedule on the existing subscription, when prorating length for the new subscription, those additional payments will be accounted for. Similarly, if the customer has skipped or missed payments, they will not be accounted for.

Switch Button Text

↑ Back to top

Customize the button text displayed next to a subscription under WooCommerce > Settings > Subscriptions.

Subscriptions Switching Button Text

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 button

Switching Process

↑ Back to top

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

↑ Back to top

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.

Whether a subscription is more expensive, cheaper or the same price is determined on a daily basis not on an absolute basis. For example, a $2 per day subscription is more expensive than a $300 per year subscription, which costs only $0.82 per day.

Cross-grades

↑ Back to top

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 PeriodPricing MechanismProrated Value
ShorterFirst payment dateExisting subscription’s next payment date
Gap PaymentNone
SameFirst payment dateExisting subscription’s next payment date
Gap PaymentNone
LongerFirst payment dateExisting subscription’s next payment date
Gap PaymentNone

Downgrades

↑ Back to top

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 PeriodPricing MechanismProrated Value
ShorterFirst payment dateBased 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 PaymentNone
SameFirst payment dateBased 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 PaymentNone
LongerFirst payment dateBased 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 PaymentNone

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.

Notice that the order total includes the date on which the first payment is charged.

Upgrades

↑ Back to top

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 (It is handled automatically) 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 PeriodPricing MechanismProrated Value
ShorterFirst payment dateBased 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 PaymentNone
SameFirst payment dateGap payment charged immediately, then first renewal date is the old subscription’s next payment date
Gap PaymentDays until next payment * ( New Price Per Day – Old Price Per Day )
LongerFirst payment dateGap payment charged immediately, then first renewal date is the old subscription’s next payment date
Gap PaymentDays 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.

As a note, this change is handled by Subscriptions and not something the Store Owner needs to do.

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.

Subscription Upgrade Order Totals, with Gap Payment, on Checkout

Prorating Free Trials

↑ Back to top

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.

If the customer switches during the free trial, proration is applied at the time of switch, regardless of the free trial. This means the customer may be required to end their free trial early if upgrading during the trial or may receive an extended free trial if downgrading their subscription.

Switching with Coupons

↑ Back to top

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.

Cart Coupon Discounting a Subscription’s Gap Payment, not Recurring Amount

Existing Recurring Discount Coupons

↑ Back to top

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

↑ Back to top

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

↑ Back to top

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

↑ Back to top

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

↑ Back to top

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.

Switch Orders in a Subscription’s Related Orders Metabox showing

History of Switch Tracking

↑ Back to top

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

↑ Back to top

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.

Subscription Variation with unspecified Size and Color Terms

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

↑ Back to top

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
Variable Product with a Catch-all Variation
 

Regardless of whether the customer chooses Black, Green or White, the price is $1,500 because WooCommerce always uses the catch-all variation price.

Incorrect Price for the Green Subscription Variation

Changing Quantities

↑ Back to top

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

↑ Back to top

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.

Subscription Quantity Upgrade Order Totals on Checkout

FAQ

↑ Back to top

Why is the price per day used to determine a switch’s classification as an upgrade, downgrade or cross-grade?

↑ Back to top

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?

↑ Back to top

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.

Subscription Switch Classification in Cart Subtotal

How to prevent customers from purchasing more than one active Membership plan (tied to Subscription) when you also want to allow them to switch?

↑ Back to top

You’ll want to go with variable Subscription switching as opposed to grouped switching here. This is specifically helpful when you’re also using WooCommerce Memberships tied to Subscription products, and you want customers to switch between Membership plans, but not give them access to multiple membership plans at the same time.

Here’s how it would look like:

  1. Set up different products as different variations.
  2. Make sure a customer can only have one active Subscription for this variable product using the limit subscriptions setting.
  3. Assign them to their own Membership Plans.
  4. Purchase an example Subscription (variation). 
  5. Notice that if you access the variable subscription product again, it will not let you purchase a separate Subscription for a different variation, but only let you switch the Subscription, which is what you intend to happen.