WooCommerce Coupon Code Not Working: Causes and How to Fix It
Quick Answer
When a coupon fails to apply in WooCommerce, verify first that coupon functionality is enabled under WooCommerce > Settings > General > Taxes and coupons by checking Enable the use of coupon codes. Next, go to Marketing > Coupons to confirm the coupon status is Published rather than Draft. Inspect the Usage restrictions tab for parameters such as Minimum spend (calculated by WooCommerce as subtotal plus tax), Exclude sale items, or restricted Allowed emails. If settings are valid, check for caching conflicts on the cart and checkout endpoints or JavaScript errors in the browser console.

Published by TechCorner HQ Editorial Desk. Technical references reviewed against current official documentation. How we review technical content.
Common Failure Symptoms
Coupon errors during cart review or checkout generally present in several ways:
- An on-screen notice states that the coupon code does not exist or has expired.
- The checkout form reloads without applying the discount or displaying an error notice.
- The coupon applies on the cart page but disappears upon proceeding to checkout.
- The checkout interface experiences infinite loading or stops processing AJAX requests, a behavior also seen in WooCommerce Checkout Stuck Loading: Causes and How to Fix It.
- Logged-in site administrators can apply the coupon, but guest shoppers receive an eligibility error.
Core Causes and Configuration Checks
1. Global Store Settings
WooCommerce allows store owners to disable all coupon processing storewide. When disabled under general store settings, coupon input forms are hidden from the cart and checkout templates, and manual code submissions fail validation.
2. Coupon Post Status and Expiration
WooCommerce stores discount codes as post objects in WordPress. If a coupon is saved as a Draft or Pending Review, the frontend query cannot retrieve it. In addition, if a date is set in the Coupon expiry date field, WooCommerce automatically invalidates the code once that date is reached.
3. Usage Restrictions and Cart Totals
Restrictions configured on individual coupons can silently block application if cart conditions do not match:
- Minimum and Maximum Spend: WooCommerce calculates the minimum spend threshold using the sum of the cart subtotal plus tax. If the total falls below this number, the coupon is rejected.
- Individual Use Only: If selected, the code cannot be combined with any other coupon.
- Exclude Sale Items: If checked, per-cart discounts fail when items on sale are included in the order.
- Allowed Emails: When specified, WooCommerce matches the entry against the customer's billing email address. Guest users who have not yet entered their billing details or whose email does not match will be rejected.
4. Caching Layers and Script Exceptions
Aggressive full-page caching or CDN caching on dynamic endpoints (such as /cart/ and /checkout/) can serve expired security nonces or stale session states. Additionally, unhandled JavaScript errors caused by custom themes or plugin conflicts can prevent WooCommerce AJAX endpoints from completing the validation response.
Diagnostic Workflow
Perform these non-destructive diagnostic steps before modifying live settings:
- Confirm Global Enablement: Navigate to WooCommerce > Settings > General and verify that Enable the use of coupon codes is checked under the Taxes and coupons section.
- Inspect Coupon Configuration: Navigate to Marketing > Coupons and select your code. Check that the post status is Published, inspect the Coupon expiry date, and review all rules on the Usage restrictions and Usage limits tabs.
- Test in a Private Window: Open an incognito browser window, add standard (non-sale) items to the cart, and apply the code as a guest to test validation without administrative session overrides.
- Inspect Browser Developer Tools: Open developer tools (
F12or right-click and select Inspect), switch to the Console and Network tabs, and click Apply coupon. Watch for JavaScript syntax errors or failed AJAX responses.
Step-by-Step Fixes
Step 1: Verify Core Coupon Settings
Ensure that coupons are enabled storewide and that the coupon post is live:
- Navigate to WooCommerce > Settings > General.
- Scroll to the Taxes and coupons section and ensure Enable the use of coupon codes is checked.
- Click Save changes.
- Go to Marketing > Coupons, click on the coupon name, and ensure the status is Published. If the coupon was saved as a draft, click Publish.
Step 2: Adjust Restrictive Usage Conditions
Isolate whether specific limitations are preventing customers from redeeming the code:
- Edit the coupon under Marketing > Coupons and click the Usage restrictions tab.
- Temporarily clear the Minimum spend and Maximum spend fields.
- Uncheck Exclude sale items and Individual use only.
- If using Allowed emails, ensure the entered addresses match the customer billing email or use wildcards (such as
*@domain.com) where applicable. - Check the Usage limits tab to verify that Usage limit per coupon or Usage limit per user thresholds have not been exceeded.
- Click Update to save the changes.
Step 3: Exclude Dynamic Pages from Caching
To avoid stale nonces and broken AJAX submissions, ensure your caching layer bypasses active shopping sessions:
- Open your caching plugin or server cache configuration.
- Verify that dynamic checkout paths are excluded from page caching:
/cart//checkout//my-account/
- Ensure your CDN or reverse proxy does not cache requests containing WooCommerce session cookies (such as
woocommerce_items_in_cartandwp_woocommerce_session_).
Step 4: Troubleshoot Theme and Plugin Conflicts
If browser developer tools display script errors when submitting a coupon:
- Create a full backup or work in a staging environment before testing plugin interactions.
- Temporarily deactivate non-essential plugins to identify scripts that interfere with WooCommerce checkout AJAX.
- Switch temporarily to a default WordPress theme (such as Storefront or Twenty Twenty-Four) to verify whether custom theme templates are overriding cart script handlers.
Verification
Confirm that the coupon workflow is functioning properly:
- Visit the shop in an incognito or private browsing window as a guest customer.
- Add an eligible item to your cart and proceed to the cart or checkout page.
- Enter the discount code and click Apply coupon.
- Confirm that the discount is reflected in the cart totals and that the order subtotal recalculates accurately.
- Complete a test order through to the order confirmation screen to ensure the discount applies during final payment processing.