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.
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?'
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.
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.
Free shipping coupons
A free shipping coupon still needs a free shipping method enabled in the matching zone. Create a free shipping method and set it to require a valid free shipping coupon, or allow both automatic and coupon-based free shipping.
Plugin conflicts and custom code
Membership plugins, BOGO extensions, and checkout fee plugins can recalculate totals after the coupon runs, wiping the discount. Test with WooCommerce alone. Custom snippets using woocommerce_coupon_is_valid filters 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 without breaking checkout.