A customer adds products to the cart, types in a discount code from your email campaign, and gets an error. Or worse, the code seems to apply and then the discount vanishes at checkout. Every failed coupon is a small lost sale, and it usually produces a support email too.
The good news is that WooCommerce coupon problems follow a handful of predictable patterns. In most cases the error message itself points to the cause, and the fix takes a few minutes inside the coupon settings. This guide walks through the most common causes in order, shows how to diagnose each one, and explains when the problem is bigger than a setting.
- Start with the error message
- Find out who is affected
- Cause 1: coupon restrictions
- Cause 2: usage limits, expiry, and status
- Cause 3: free shipping coupons
- Cause 4: coupons disabled or the field is missing
- Cause 5: caching and JavaScript errors
- Cause 6: plugin and theme conflicts
- Subscription and special coupon types
- Step-by-step troubleshooting checklist
- How to prevent coupon problems
- When to call a developer
- Frequently asked questions
Start With the Error Message
WooCommerce tells customers why a coupon was rejected, and the wording is a direct clue. Before changing anything, apply the coupon yourself and note the exact message. The wording can vary slightly between versions and languages, but these are the ones you will see most often.
| Message (approximate) | What it usually means | Where to fix it |
|---|---|---|
| Coupon "X" does not exist | Wrong code, unpublished coupon, or a hidden character in the code | Coupon list and status |
| This coupon has expired | The expiry date has passed | Coupon general tab |
| Coupon usage limit has been reached | Total or per-customer limit is used up | Usage limits tab |
| Minimum spend for this coupon is $X | Cart total is below the minimum | Usage restriction tab |
| Sorry, this coupon is not valid for sale items | "Exclude sale items" is on and the cart has discounted products | Usage restriction tab |
| Sorry, this coupon is not applicable to selected products | Product or category restrictions do not match the cart | Usage restriction tab |
| Sorry, it seems the coupon is not yours | Allowed emails or per-user limit does not match the customer | Usage restriction and limits tabs |
| Coupon code already applied | The same code is already in the cart, or individual use is blocking a second code | Usage restriction tab |
If the message does not appear at all, or the coupon applies and then disappears, the cause is more likely technical: caching, a script error, or a conflict. Those are covered later in this guide.
Find Out Who Is Affected
Narrowing down who sees the problem saves a lot of time. Test the same coupon in these situations:
- Logged in as admin versus a private browser window as a guest. A coupon that works for you but not for customers is often unpublished, restricted by email, or affected by caching.
- With different products in the cart. If it fails for some products only, product, category, or sale-item restrictions are the likely cause.
- At different cart totals. Minimum and maximum spend rules show up here.
- On desktop and mobile. A difference suggests a theme or JavaScript issue rather than a coupon setting.
Write down what you find. It will tell you which of the causes below to check first.
Cause 1: Coupon Restrictions That Block the Discount
The most common reason a coupon fails is a restriction that was set up on purpose and then forgotten. Open the coupon and review the Usage restriction tab carefully.
What to check
- Minimum and maximum spend. A minimum of $50 means a $45 cart gets rejected. Check whether the amount includes or excludes shipping and tax in your setup.
- Individual use only. If this is ticked, the coupon cannot be combined with any other code in the cart.
- Exclude sale items. If any product in the cart is on sale, a percentage coupon may be rejected or may skip those items.
- Products and categories. Only the listed products or categories qualify. Excluded products or categories can also block the coupon if they are in the cart.
- Allowed emails. The coupon only works when the billing email matches. A customer using a different email gets an error.
How to fix it
Loosen or remove the restriction that does not match your intent, save the coupon, and test again in a private window. If the restrictions are deliberate, update your coupon email or banner so customers know the conditions. Clear communication prevents most coupon-related support tickets.
Cause 2: Usage Limits, Expiry, and Coupon Status
Expiry date and status
A coupon only works when its status is Published and its expiry date has not passed. Drafts, pending coupons, and coupons moved to the trash are treated as if they do not exist. This is a frequent cause of the "coupon does not exist" message, especially when a coupon was created in advance and never published.
Usage limits
The Usage limits tab controls how many times a coupon can be used overall and per customer. Check these fields:
- Usage limit per coupon. Once the total is reached, every customer is rejected.
- Usage limit per user. Logged-in customers are tracked by account. Guests are usually checked by billing email.
- Limit usage to X items. This caps how many cart items the discount applies to.
Pending orders can hold usage
Orders left in a pending payment state can count against a coupon's usage while they wait. If a coupon with a small limit seems to run out too early, look at your orders list for stale pending or failed orders that used the code. Cancelling them can free the usage back up. The coupon list also shows a usage count next to each code, which makes it easy to spot a limit that has been hit.
Cause 3: Free Shipping Coupons
Free shipping coupons trip up many store owners, because ticking "Allow free shipping" on the coupon is only half of the setup. The shipping zone also needs a method that accepts the coupon.
How to check
- Go to WooCommerce, Settings, Shipping and open the shipping zone your customer falls into.
- Make sure a Free shipping method is added to that zone.
- Set its requirement to A valid free shipping coupon, or to a coupon-or-minimum-order option if you also want a spend threshold.
- Confirm "Allow free shipping" is ticked on the coupon itself.
If the customer's address is outside every shipping zone, no shipping method appears at all, and the coupon has nothing to apply to. Test with an address inside a configured zone.
Cause 4: Coupons Disabled or the Coupon Field Is Missing
Coupons switched off globally
WooCommerce has a store-wide setting that enables or disables coupon codes. Check WooCommerce, Settings, General and confirm the option to enable coupon codes is ticked. If it is off, no coupon works anywhere and the coupon field disappears from the cart and checkout.
The field is hidden by a theme, builder, or plugin
Customized checkouts often remove the coupon field without anyone noticing. Common causes include:
- A page builder or custom checkout template that leaves out the coupon section.
- A checkout plugin that rearranges or replaces the default layout.
- A snippet in the theme's functions file that hides the coupon toggle.
- Switching between the classic checkout and the block-based checkout, where the coupon field is configured differently.
If the coupon box was there before and is gone now, think about what changed recently: a theme update, a new plugin, or a redesign. Our guide to fixing a WooCommerce checkout that is not working covers the wider checkout problems that often come with this.
Cause 5: Caching and JavaScript Errors
Coupons are applied through background requests that update the cart totals without reloading the page. If caching or a script error interferes, the coupon can look like it failed even though the settings are correct.
Symptoms
- The coupon applies, but the totals do not update until you refresh the page.
- The cart page reloads when you try to enter a code.
- The coupon works for you as admin but not for logged-out visitors.
- The coupon works at the cart but not at checkout, or the other way around.
How to fix it
- Exclude cart, checkout, and account pages from caching. Most caching plugins and hosts have a setting for this. These pages are personal to each visitor and should never be served from a shared cache.
- Clear every cache layer. That means your caching plugin, your host's cache, and any CDN such as Cloudflare.
- Open the browser console. Press F12 and look at the Console tab while applying the coupon. Red errors often point to a script from a specific plugin or theme.
- Check script optimization settings. Minifying, combining, or delaying JavaScript can break the cart scripts. Turn those options off temporarily to test.
This overlaps heavily with cart update problems, so if totals are not refreshing for other reasons too, see our guide on fixing a WooCommerce cart that is not updating.
Cause 6: Plugin and Theme Conflicts
If the coupon settings are correct, caching is excluded, and the problem remains, a conflict is the next suspect. Coupon, discount, loyalty, and dynamic pricing plugins are the usual culprits, because they all try to change how totals are calculated.
How to run a conflict test safely
- Work on a staging copy of your store, not the live site. Our guide to why every WooCommerce store needs a staging site explains how to set one up.
- Switch to a default theme such as Storefront and test the coupon.
- If it works, the theme or its customizations are the cause.
- If it still fails, deactivate all plugins except WooCommerce and test again.
- Reactivate plugins one at a time, testing the coupon after each, until the problem returns.
The plugin that brings the problem back is the conflicting one. For a deeper walkthrough of this method, see our guide to diagnosing and fixing WordPress plugin conflicts.
Subscription and Special Coupon Types
Stores that sell subscriptions, bundles, or memberships have extra coupon behavior to watch for. WooCommerce Subscriptions adds its own coupon types, including discounts on the sign-up fee and recurring discounts that apply to every renewal. A standard cart discount will not behave the same way on a subscription product, and a mismatch is a common reason a coupon appears to do nothing.
If you sell recurring products, read how WooCommerce subscriptions and recurring payments work before building your discount strategy. Also test coupons with the exact product type you plan to promote, rather than assuming a store-wide code will behave the same everywhere.
Step-by-Step Troubleshooting Checklist
Work through this list in order. Most coupon problems are solved within the first four steps.
- Apply the coupon yourself in a private window as a guest, and write down the exact error message.
- Check the coupon status. It must be Published, and the expiry date must be in the future.
- Review usage limits. Compare the usage count to the limit, and cancel stale pending orders that may be holding usage.
- Review every restriction. Minimum spend, individual use, sale items, products, categories, and allowed emails.
- For free shipping coupons, confirm the shipping zone has a free shipping method set to accept a coupon.
- Confirm coupons are enabled in the general settings and that the coupon field appears on the cart and checkout.
- Exclude cart and checkout from caching and clear all cache layers.
- Check the browser console for script errors while applying the coupon.
- Run a conflict test on a staging site with a default theme and only WooCommerce active.
- Test again as a guest and a logged-in customer on both desktop and mobile before announcing the fix.
How to Prevent Coupon Problems
- Test every coupon before you promote it. Apply it as a guest, with the exact products and cart total your campaign will drive.
- Keep codes short and avoid copying them from formatted documents. Hidden characters and trailing spaces cause "coupon does not exist" errors.
- Write the conditions into the offer. If there is a minimum spend or a sale-item exclusion, say so in the email or banner.
- Set usage limits deliberately. A limit that is too small can quietly end a campaign early.
- Re-test after every update. Theme, plugin, and WooCommerce updates can change checkout behavior.
- Use coupons in recovery emails carefully. If you send discount codes to shoppers who left items behind, make sure the code is tested end to end. Our guide to WooCommerce abandoned cart recovery explains how those emails work.
When to Call a Developer
Most coupon issues are settings. It is worth getting help when:
- The coupon settings are correct, but the discount still fails after a conflict test.
- A custom checkout or page builder layout has removed the coupon field and you are not sure how to restore it.
- Discounts calculate wrongly, such as the wrong amount, wrong tax, or a discount that disappears at payment.
- You use several discount plugins and they are fighting each other.
- You are losing sales while troubleshooting, and the store cannot wait.
A developer can find a conflict or a custom code problem much faster than trial and error on a live store. If budget is a concern, our guide on how to hire a WooCommerce developer on a budget shows how to get quality help without overspending.
I fix WooCommerce coupon, cart, and checkout problems for store owners, usually on a staging copy first so your live store stays safe. Message me the exact error and a screenshot, and I will tell you what is wrong and what it will take to fix.
Chat on WhatsAppFrequently Asked Questions
Why is my WooCommerce coupon not working?
The most common reasons are coupon restrictions such as a minimum spend or excluded sale items, an expired or unpublished coupon, a reached usage limit, a missing free shipping method, caching on the cart and checkout pages, or a plugin conflict. The exact error message usually tells you which one applies.
Why does my coupon work for me but not for customers?
This usually means the coupon is restricted by email, limited by usage, or affected by caching. Test in a private browser window as a guest, and make sure the cart and checkout pages are excluded from caching.
Why does the coupon say it applied but the discount does not show?
That points to a caching or JavaScript problem, or a coupon type that does not match the product, such as a standard discount on a subscription. Clear all caches, check the browser console for errors, and run a conflict test on a staging site.
How do I make a free shipping coupon work in WooCommerce?
Tick "Allow free shipping" on the coupon, then add a Free shipping method to the customer's shipping zone and set it to require a valid free shipping coupon. Without that shipping method, the coupon has nothing to apply to.
Are WooCommerce coupon codes case sensitive?
No. WooCommerce treats coupon codes as case-insensitive, so capital letters are not the problem. Extra spaces or hidden characters copied from another document are more likely to cause trouble.
Why did my coupon stop working after an update?
Updates can change checkout templates, scripts, or how a discount plugin works. Check whether the coupon field is still visible, clear caches, and test with a default theme and only WooCommerce active to see whether a plugin or theme conflict appeared.
Can I combine multiple coupons in WooCommerce?
Yes, unless a coupon has "Individual use only" ticked, which blocks combining it with other codes. If two codes will not combine, check that setting on both coupons.
Coupon problems feel urgent because they sit right on the path to a sale, but they are usually fixable in minutes once you know where to look. Start with the error message, work through the checklist above, and use a staging site for anything risky. If you would rather hand it off, you can learn how to hire a WooCommerce developer or contact me directly with your error details.