How to offer recurring discounts when switching subscriptions

Imagine you have a variable subscription with three different options, for example an ecological vegetable basket that comes in sizes for 1 adult, 2 adults or family. Customers can switch between sizes as they wish to adjust for traveling family members, holidays etc.

Imagine you run a promotion, offering 10% discount for everyone who subscribes before a certain date, for example “use discount code SPRINGTIME before June 1st and get 10% off forever”.

Your recurring discount code should expire on June 1st.

However, your customer’s use of the discount code should not – even if they switch subscriptions.

WooQuestion: If a customer upgrades / downgrades his vegetable basket – will the discount code still apply? Even if it expired for first time users?


Official answer “No, you can’t!”, but…

Recurring discount codes for subscriptions do not transfer to other subscription variants when switching subscription (as stated in the documentation).


Remember what you are trying to achieve

You want your customers to feel super special through an unrestricted discount code no matter which subscription type they are on – giving them the flexibility to switch back and forth as needed.

Ideally you’d also want them to remember that they are on a discount. Just to make sure you are not being taken for granted.

One extra step to make them feel special

An alternative is using a custom code for each customer after the initial discount code has been applied for the first time. This new code is tied to the customer’s email address and at the same time it IS the email address.

Let’s say Maribel signs up for the 2 person basket, using discount code SPRINGTIME on April 30th. She gets 10% off her subscription forever and ever (even if the code expires the next day).

However, this code won’t work in July when she wants to change to the family basket because her parents are in town. If she simply switches to the new basket, the code won’t apply AND she will loose it if downgrading again to her 2 person basket.

Instead, after her first purchase she get’s an email.

Hi Maribel, thanks for your order. Remember that at any time you can adjust your personal basket size to YOUR needs. To make sure that on each switch you still retain your 10% lifetime discount, please use your email as your discount code. 

You might even add an image to show Maribel where her email should go.

Maribel won’t forget her discount code, as it’s her email. And every time she switches up and down, she’ll remember how awesome you are for giving her perpetual discount

Technically: manually or automatically – how many baskets are you selling

If you only receive a couple of orders per day, you might still be able to do this manually. However, after a certain threshold, you’ll have to look for an automatic solution – customising the workflow based on the initial discount code used. For example, on the day SPRINGTIME expires, you could export ALL orders that used this discount code, batch create those new discount codes based on the order emails and sent out a unified “thanks for your purchase, you are awesome, here is our super personalised code”.