Coupon code for 1 year access

My client is looking to create a coupon code for his membership that gives the customer 1 free year of access and then locks them out after it’s up.

Is there a way I can go about doing that?

1 Like

I integrated a coupon here where it gives the person 100% OFF but I don’t know it the coupon renews. I don’t want it to. It’s just for one-time-use of 1 free year.

Discount: 100% off. (Now: $0.00 for 7 days, then $0.00 / yearly)

1 Like

Hi Ashley.

Could you give me more details to understand what you’re trying to achieve?

I’m not sure I understand by that… So the user gets access for a year and then loses it? And what happens if he didn’t use a coupon?

Is this a subscription where he’d get the free year free, but have to pay for continued access?

By renew you mean like a subscription? Or about using the coupon again?

Do you mean you want the coupon be usable only once by each user? How would you prevent someone from creating a new account to use it again?

Coupons can have a limited number of users, but it’s total, not for a specific user…


1 Like

I would like the same functionality she mentions but different a bit.

Let’s say I want to give a coupon to someone who donates me an amount, but I want that amount to be used towards the subscription like a prepaid thing, not like a coupon that gives that amount in a recurring manner.

So, let’s say I sell you a 10 dollar gift card, the person with the gift card uses that coupon for a 10 dollars discount. Not 10 dollars per month.

I guess Ashley wants the same but specifically applied to a specific subscription, but as a coupon instead of a trial applicable to any person (I know how to do the latter but I think it would not help her sorry).

That’s doable using the trial/initial period amount (a.k.a. ta) in the shortcode, and ta-only in the coupon.

1 Like

Only if you have a trial period.

Also, trials don’t work well with Stripe and users get away activated without paying (I used it to charge a higher amount for the first month), so I stopped using them years ago. :grimacing:

Plus you don’t get to, for example, sell a 50 gift card and have a user use it on a 12 subscription and start paying as soon as they run out of credit.

I see.

The problem is that with subscriptions, the initial term is the only one that can have a different amount form the regular ones going forward. You can’t just discount one of those regular payments, at least not easily with the subscriptions integration.

I’m looking at how to make all kind of flexible discounts and pricing possible, but that’s not for soon, probably, although it’s something I really want. It’d have to be something that s2 manages instead of Stripe, the amount and schedule, while Stripe handles securely the card details and charge.

Anyway, coupons have those limitations, so I need to understand what Ashley here wants, and see what I can suggest that gets close to it with what’s possible/available.


1 Like

She could have two separate plans, one with one year paid trial, so the trial coupon would only apply to that first year. And another plan with the 7 free days she seems to give for free, where I assume the trial only coupon would be moot as it would not be applied to the recurring charges later on. At least that’s what I’d personally do if I understood her immediate need correctly.

I hope this idea helps.


My client wants to create a coupon that gives 1 FREE year and can expire at the end of one year, then they would have to pay for membership.

He wants a COUPON CODE, not another membership subscription.

then they would have to pay for membership.

Would that be a single payment for another year of access, or a recurring payments subscription? If a subscription, what are the terms (e.g. monthly, yearly)? Could you show me the pro-form shortcodes you’re using?

Recurring payment subscription for two memberships. One is a buy now.

He wants the coupon to expire after 1-year AFTER it’s applied to the corresponding membership.
Then after the coupon expires after a year, they can choose to purchase or not.

7 Days free / then $9.99 USD / Monthly (recurring charge, for ongoing access)
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“7 Days free / then $9.99 USD / Monthly (recurring charge, for ongoing access)” cc=“USD” custom=“websiteURL” ta=“0” tp=“7” tt=“D” ra=“9.99” rp=“1” rt=“M” rr=“1” coupon="" accept_coupons=“1” default_country_code=“US” captcha=“0” /]

7 Days free / then $99 USD / Yearly (recurring charge, for ongoing access)
[s2Member-Pro-Stripe-Form level=“2” ccaps="" desc=“7 Days free / then $99 USD / Yearly (recurring charge, for ongoing access)” cc=“USD” custom=“websiteURL” ta=“0” tp=“7” tt=“D” ra=“99” rp=“1” rt=“Y” rr=“1” coupon="" accept_coupons=“1” default_country_code=“US” captcha=“0” /]

$199 USD / One Time (for lifetime access, non-recurring, no trial)
[s2Member-Pro-Stripe-Form level=“3” ccaps="" desc="$199 USD / One Time (for lifetime access, non-recurring, no trial)" cc=“USD” custom=“websiteURL” ta=“0” tp=“0” tt=“D” ra=“199” rp=“1” rt=“L” rr=“BN” coupon="" accept_coupons=“1” default_country_code=“US” captcha=“0” /]

Are you able to help me with this?

I’m sorry, Ashley, I had missed your other reply…


The coupons can have an expiration, but it’s a date, and applies to the coupon itself, not the user with that coupon. So once it expires, it expired for everyone, and if it doesn’t expire, the user could use it again…

What you could do is have a conditional in the payment page, that checks whether the user already had that access or not in the past:

If he never had it, then enable the coupon field in the pro-form, but if he already had it before, don’t show a coupon field, and then he won’t be able to use the coupon even if he has it.

This would work for existing users, so he’d need to register free (level 0) and login first, and then show the level 1 pro-form. Does that make sense?


I see your pro-forms are for different regular terms (monthly, yearly). For the yearly one it’s not an issue, because you can have an initial term of a year to which you apply the coupon (i.e. ta-only directive), and the regular terms afterwards would not be discounted.

The monthly one is trickier, because you can’t have 12 terms at one price, and then change to another price on the 13th term onward. And the coupon can’t change the pro-form to change those parameters… well, at least not out-of-the-box, I guess with some customization it would be possible to do that, if necessary.

I guess that functionality would need to be added for it to be possible so we could sell pre paid amounts to be redeemed and also give nominal value coupons that are just deducted from whatever the user has to pay (and have the user balance / future invoices automatically adjusted until that credit is redeemed).

Meanwhile, perhaps she needs a dedicated page with a form offering a plan that’s compatible with a trial period that matches it where that coupon could be applied. Or add an extra plan for that purpose in the original form.

Or assign credit to the user manually using Stripe’s dashboard, but that’s more for micro users like me with a handful of users, not something you might want to do with a large userbase. :thinking:

I just got someone that wanted to give a nominal gift to a third party.

I created a coupon but I don’t have TA.

I will be forced to manually adjust the user’s subscription later.

It would be good to have a way to give credit to users so we could sell prepaid gift cards. I got that request a few times and I always have to do it in a very clunky and unprofessional manner as the system doesn’t have a method to just give the user a positive credit, unless it’s someone that already has a customer account on stripe, then I can manually assign it using the dashboard without s2member’s participation. :grimacing:

Any idea on something that could be done?

I’m not sure I understood, Sim. Could you explain it in more detail and with an example? Thanks!


My subscriptions are always normal.

No trials (they’re glitchy and I also don’t need them, I used them before to have the first period higher in price but there were many issues like subscriptions being activated without the payment going through etc).

Sometimes users want to give gifts to other people. They can make a payment of a specific amount, let’s say 20 dollars, and that amount should be usable towards someone’s subscription.

I need to be able to issue a 20 dollar coupon code, so the gift recipient could use that code to get 20 dollars of whatever they choose to subscribe to.

Everthing that exceeds that amount should be charged normally.

Obviously, the 20 should not apply to a trial, as there’s not one, and it also should not be a recurring discount, since the user only received a 20 dollar gift. :slightly_smiling_face:

Thanks for explaining it. I think I understood it now.

I see, it’s tricky… I’ll have to think about that one. Thanks for the idea! I’m adding it to my list with your vote.

If it’s a special case, what you could do is create a page just for that person (maybe with a unique random slug), with a pro-form just for that person’s subscription with an initial term that can be discounted with the credit from his friend, and set it to accept coupons… And create a single-use coupon code unique for this person, that will discount the amount from the initial term only.


1 Like

I like your idea too!

I already generated a coupon so when their subscription starts I will edit it manually using Stripe’s Dashboard to force it to charge them correctly if the coupon is mistakenly applied as recurring.

It would be VERY useful to have functionality that allows people to purchase “gift cards” or to “gift a subscription” as sometimes people might want to gift those things (I have been asked a couple of times and you know my community is very small, imagine a large site).

Perhaps you could create a $10 add on for pro users to add this functionality (gift cards and gift subscriptions). We can even offer discounts when a currently subscribed user takes a second subscription to give away, for example.

Having cheap add ons that bring extra functionality might be handy for us as users and for you to generate more revenue. Provided the effort to create those additions isn’t larger than the reward.