What this problem looks like
A coupon is a set of rules evaluated against the cart. 'Coupon does not exist' means a typo or wrong site in multisite. 'Coupon is not valid for sale items' is a configured restriction, not a bug.
Auto-applied coupons from third-party plugins can block manual codes if the plugin does not allow stacking.
Step 1: Enable coupons and locate the apply field
WooCommerce → Settings → General → Enable coupons must be checked. Block cart and checkout expose an apply coupon form. Some themes hide it behind a link labelled 'Have a coupon?'
Step 2: Restriction fields that block redemption
- Expiry date in the past or not yet started.
- Usage limit per coupon or per user already reached.
- Minimum or maximum spend not met.
- Allowed emails list does not include the customer.
- Excluded products or categories in the cart.
- Individual use only while another coupon is active.
Step 3: Sale item exclusions
The 'Exclude sale items' checkbox blocks coupons when any line item is on sale. Either turn it off for storewide promos or limit the coupon to full-price SKUs only.
Step 4: Free shipping coupons
A free shipping coupon still needs a free shipping method enabled in the matching zone under WooCommerce → Settings → Shipping. Create a free shipping method and set it to require a valid free shipping coupon, or allow both automatic and coupon-based free shipping.
Step 5: Plugin conflicts and custom code
Membership plugins, BOGO extensions, and checkout fee plugins can recalculate totals after the coupon runs, wiping the discount. Rename wp-content/plugins to plugins.disabled via File Manager, SFTP, or FTP and test with WooCommerce alone. Custom snippets using the woocommerce_coupon_is_valid filter may reject codes silently.
When to stop DIY and hire help
Hire help when you need tiered discounts, cart-wide rules across vendors, or coupon logic tied to subscriptions. BugShield implements reliable promotion rules at a confirmed price without hourly billing surprises.