When creating a subscription product, you can set a length to the subscription, for example, 12 months, or 2 years.
When a customer purchases a subscription with a defined length, it will renew until that number of recurring payments has been completed, and then be set to “expired.”
After the subscription expires, the customer can login to your store and create a new subscription to that exact product by resubscribing to it from their My Account page. This is the simplest way for a customer to extend a subscription with an expiration.
Allowing a customer to extend a subscription before it expires is more complicated. The only way for customers to extend a subscription before it expires is to switch their existing subscription to a new subscription with a longer length.
To allow customers to do this, first, you need to setup switching. To do this:
- Go to: WooCommerce > Settings > Subscriptions administration screen
- Scroll down to the Switch Settings section (titled Switching)
- Enable switching by changing the Allow Switching select box to anything other than “Never”
- Enable proration of the expiration by changing the Prorate Subscription Length to anything other than “Never”
After you have set up switching, you need to create a product which allows customers to switch to a longer subscription. To do this:
- Go to: Products > Add Product administration screen
- Select Variable Subscription as the product type
- Click the Attributes tab on the Product Data metabox to define the variation attributes
- Add a Length attribute (either as a custom product attribute if you will only use this on one product, or as a product attribute if it will be used on multiple products)
- Define the lengths you will allow for each variation
- Add variations for each length defined above
For example, the screenshot below shows 3 variations with 3 different lengths – 1 year, 2 years and 3 years.
Customers can now use the normal upgrade process to choose a longer subscription.
Although the two methods above allow your customers to extend their subscriptions, they both create a new subscription with the extended expiration date rather than simply changing the expiration date on the existing subscription.
This is because not all payment methods support date changes after a subscription has been created and therefore, Subscriptions can only be assured all payment gateways will be able to extend the expiration date by creating a new subscription with the payment gateway.
For example, there is no way to change the expiration date on a subscription created with PayPal Standard. Instead, PayPal requires the old subscription with the old expiration date be cancelled, and an entirely new subscription be created with the new number of payments. Both the switching process and renewal of an expired subscription will create the new subscription at PayPal.
If you require a feature to extend a subscription’s expiration date without creating a new subscription, please request it as a feature.