How coupon restrictions are checked
Updated September 15, 2026
Every restriction you set on a coupon must pass for the coupon to apply. If one fails, the shopper sees the message for that restriction only, and the remaining checks are skipped. Blank fields are ignored, so a coupon with nothing set in the tab behaves exactly as it did before.
WooCommerce’s own rules run first
The plugin adds its checks after WooCommerce has validated the coupon. If a native WooCommerce rule fails first (for example the expiry date, the Usage restriction minimum spend, or the usage limit), WooCommerce’s own error is shown and the Better Coupon Restrictions rules are not evaluated at all.
The order checks run in
Checks run in this order, and the first failure stops the rest:
- Improved Product Restrictions, Improved Category Restrictions, Product Attribute Restrictions
- Minimum cart quantity, subtotal and weight
- New Customer Only, Customer Logged In Status, allowed and disallowed user roles
- Date range, calendar months, weekdays, time of day
- Payment method, shipping method
- PRO checks: address, order history, time registered, time since last order, IP and referring domain, meta data and cookie, email domain, usage limit per period, purchase history, and coupon link
Rules that wait for checkout details
Some rules need information the shopper has not given yet when they apply a code on the cart page. These rules let the coupon through until the detail is known, then check it again:
- Payment method rules are only applied at checkout, once a payment method is chosen.
- Shipping method rules are applied once a shipping method is chosen, and are skipped for carts that do not need shipping.
- Country, State or Province, Zip / Postcode and Maximum Usage Per Address wait until the address is entered.
- New Customer Only, Allowed Email Domains, Usage Limit Per Period and Purchase History check guests by the email address typed at checkout.
WooCommerce re-validates applied coupons as the checkout updates. If a rule now fails, the coupon is removed and the message is shown. This is why a coupon can apply on the cart page and then be removed at checkout.
When restrictions are not applied
The rules only run when there is a shopping cart. Coupons added to an order from the admin order screen, or through the REST API or WP-CLI, are not checked against Better Coupon Restrictions rules.


