Skip to content
WooCommerce

WooCommerce Coupon Not Working? Read the Message First

Most coupon failures are the coupon following its own settings. Match the message to the cause, rebuild the shopper's cart and fix the right setting.

Overhead view of a laptop, a card machine and a coffee
7 sections · 7 min read
In this article · 7 sections

A customer sends you a screenshot. They typed the code from your newsletter, pressed Apply, and the store told them the coupon code is invalid. You try it yourself and it works. They try again and it fails. Meanwhile three more messages arrive asking the same thing, and the offer ends tonight.

A WooCommerce coupon not working is usually the coupon doing exactly what its settings say, for a cart or a customer you did not have in mind when you set it up. The fastest way through is to read the message the shopper actually sees, then recreate their cart. This post covers both, and the handful of causes that are not about the coupon at all.

Start with the exact message

WooCommerce does not just say “no”. It shows a specific notice, and the wording points to the setting responsible. Ask the customer for a screenshot or the exact text. The wording varies a little between WooCommerce versions and themes, but the meaning is consistent.

Message along the lines of What it usually means
Coupon does not exist A typo, a stray space, the coupon is still a draft or in the bin, or coupons are switched off
This coupon has expired The expiry date has passed in the store’s time zone
The minimum spend for this coupon is… The cart is under the minimum set on the coupon
Not applicable to selected products The cart has none of the products or categories the coupon allows
Not valid for sale items “Exclude sale items” is ticked and the cart contains a discounted product
Usage limit has been reached The coupon has been used as many times as allowed, overall or by this customer
Cannot be used with other coupons One of the coupons in the cart is set to individual use only
The coupon is not yours The coupon is limited to certain email addresses and the billing email does not match

If the customer saw no message at all and the discount simply did not appear, skip to the section on causes outside the coupon settings.

Recreate the customer’s cart

“It works for me” usually means you tested a different cart. Before you change anything, rebuild theirs:

  1. Open a private browser window so you are not logged in as an admin.
  2. Add exactly the products they had, in the same sizes or variations and quantities.
  3. Go to checkout and fill in a billing email. If the customer had an account, use a test account rather than none.
  4. Apply the code and read the notice.

Usually the failure appears as soon as the cart matches. That tells you which setting to look at, and whether the setting is wrong or the customer simply did not qualify.

Why a WooCommerce coupon code is invalid: the settings, tab by tab

Open the coupon under Marketing > Coupons. The settings sit in three tabs, and each tab has its own typical mistakes.

General

  • Discount type. “Percentage discount” and “Fixed cart discount” apply to the cart. “Fixed product discount” takes the amount off each qualifying item. Choosing the wrong one gives a discount that looks broken, too large or too small, even though the code was accepted.
  • Allow free shipping. Ticking this does nothing by itself. A free shipping method must exist in the customer’s shipping zone and be set to require a valid free shipping coupon.
  • Coupon expiry date. Check the date, then check the store’s time zone in Settings > General. A store set to a different time zone from yours can expire a code earlier or later than you expect.

Usage restriction

  • Minimum and maximum spend. A cart just under the minimum is behind a lot of “invalid” complaints during a sale.
  • Individual use only. When ticked, the coupon cannot be combined with any other code. If your site automatically adds a code, for a first order or a loyalty scheme for example, a manually typed one may now clash with it.
  • Exclude sale items. Easy to forget when a festival sale puts half the catalogue on sale price. The code is then rejected for every discounted product.
  • Products and categories. If you list products or categories here, the coupon only works when the cart includes at least one of them. A new product added after the coupon was set up will not be included unless its category is.
  • Allowed emails. WooCommerce can only check this once it knows the billing email, so the code can look accepted in the cart and then be removed at checkout. Customers find that confusing; mention the restriction wherever you share the code.

Usage limits

  • Usage limit per coupon. The total number of times anyone can use it. The coupon list has a Usage / Limit column showing how many uses have been counted so far.
  • Usage limit per user. Checked against the customer’s account or email. A customer who already used a “first order” code with the same email will be refused.
  • Limit usage to X items. For product discounts, only that many items get the discount. The code works, but the customer may feel the discount is wrong.

Causes outside the coupon settings

Coupons switched off store-wide

WooCommerce > Settings > General has an option to enable coupon codes. If someone switched it off, the coupon field disappears or every code is rejected. It sometimes gets switched off during a site rebuild and never switched back on.

The coupon is not published

A coupon saved as a draft, scheduled for a later date, or moved to the bin is treated as if it does not exist. Check the status at the top of the coupon screen.

Copy and paste problems

WooCommerce coupon codes are not case-sensitive, so capitals are not the problem. Spaces and look-alike characters can be. Codes copied from a WhatsApp message or a PDF sometimes carry an invisible space at the end, or a letter O where a zero should be. Avoid codes that mix O and 0, or I and 1.

Another discount plugin is in charge

Dynamic pricing, bulk discount, membership and “buy one get one” plugins all change prices in the cart. Some of them deliberately block coupons on items they have already discounted. If the message does not match anything above, deactivate discount plugins one at a time on a staging copy and test again.

A cached cart or checkout

If the cart or checkout page is being cached, the coupon can appear to apply and then vanish, or apply for one shopper and not another. That is a caching configuration problem rather than a coupon problem, and it is covered in detail in our post on a cart that empties itself after adding products.

Currency and price display plugins

If you sell in more than one currency, a fixed amount coupon may behave differently from what you expect when the cart is shown in another currency. Test the code in each currency you sell in.

Setting up coupons that do not cause complaints

  • Write the conditions in plain words wherever the code appears: “Discount on orders above the minimum spend, not valid on sale items, ends Sunday night.” Fewer people try it in carts that cannot qualify.
  • Test four carts before you announce a code: one that should work, one under the minimum, one with an excluded product, and one with a sale item.
  • Use one code per campaign, so you can tell which newsletter or post brought the order, and so you can end one campaign without breaking another.
  • Expire old codes. Codes from past campaigns can spread to coupon-listing sites and keep being tried months later.

If you are planning a large sale, the coupon testing fits into a wider plan; our countdown for getting a WooCommerce shop ready for a festival sale shows where it belongs. And if you send discount codes in reminder emails to people who left without buying, the same tests apply to those, as explained in our post on recovering lost carts.

What to reply to the customer

While you look into it, a short, honest reply works better than silence: say you have seen the problem, that you are checking the code, and that you will honour the offer if the fault turns out to be on your side. If the cart simply did not qualify, explain the condition in one sentence and, where it makes sense, offer to apply the discount by hand to their order.

WooCommerce coupon not working with every setting correct

If every setting checks out, the cart matches, and the code still fails, something in the theme or a custom code snippet is likely interfering with how WooCommerce validates coupons. That needs someone who can look at the code and the logs. Spotting this kind of quiet interference early, before a campaign depends on it, is one of the reasons shops pay for ecommerce website maintenance services in India and elsewhere rather than waiting for complaints.

If a code is failing right now and you cannot see why, our WooCommerce troubleshooting service covers one-off problems like this on an existing store.

Next in this series: WooCommerce Abandoned Cart Recovery: Fix, Then Remind

Is Your Website Working Properly?

Get a free website health check from WebMaintor. We'll review your website's speed, security, forms, and technical health — and tell you exactly what needs attention.

No obligation. No automated reports. A real review by our team.