Why Isn't My Coupon Applying to a WooCommerce Renewal?
Why This Happens
Regular WooCommerce coupons are designed around one-time orders, so WooCommerce Subscriptions extends the coupon system with subscription-specific discount types: a discount on the recurring amount for every renewal, one that applies only to the initial order, and one specifically for sign-up fees. A store owner creating a coupon without noticing these options will typically get the standard "one-time discount" behavior, which only ever touches the first payment.
Common Causes
- Wrong discount type selected. A coupon using a regular percentage/fixed discount type discounts the initial order only; it needs the specific "recurring" discount type to affect every renewal.
- Coupon usage limits reached. A per-customer usage limit can block a coupon from applying again if it was already used, even unintentionally, on an earlier order.
- Coupon expiration date passed before a later renewal, if the coupon has an expiry and the subscription's discount was expected to continue past that date.
- Product or category restrictions on the coupon not matching the subscription product it's being applied to.
- Conflicts with the sign-up fee discount setting covered separately — a coupon can discount the recurring amount while deliberately not discounting the sign-up fee, which looks like a partial failure but is working as configured.
How to Fix It
- Check the coupon's discount type under WooCommerce → Coupons — confirm it's one of the recurring-specific types if the intent is an ongoing discount, not just a one-time type.
- Review usage limits and expiration against how the coupon is actually meant to be used across a subscription's full lifetime, not just its first order.
- Test on a specific subscription product directly, confirming product/category restrictions match.
- Check the sign-up fee discount setting separately if a sign-up fee is involved, since it's independent from the recurring-amount discount.
See custom WooCommerce development for coupon logic beyond what the built-in discount types support, such as a discount that steps down after a fixed number of renewals.