Better Coupon Restrictions
for WooCommerce

Control who can use your coupons, and when.

WooCommerce gives you a handful of coupon restrictions. Better Coupon Restrictions adds over 25 more conditions to every coupon, so a discount only ever applies when you actually want it to. No code, no new screens to learn.

Free version on WordPress.org 25+ extra restrictions Version 2.0.0, updated 12th September 2026 Changelog
Better Coupon Restrictions tab on a WooCommerce coupon
New customers onlyWelcome offer protected
Weekends, 5pm–9pmHappy hour discount
Rejected: 3rd use this monthLogged with the reason

Every rule your promotions actually need

A minimum spend, a product list and an expiry date only get you so far. Better Coupon Restrictions adds product quantity rules, cart rules, dates and times of day, customer status, user roles, payment and shipping methods, addresses, order history, email domains, IP addresses and more – all set per coupon, in a new tab on the normal WooCommerce coupon screen.

How it works

Edit any coupon

Open a coupon under Marketing › Coupons, exactly as you always have.

Open the new tab

A Better Coupon Restrictions tab sits alongside the built-in WooCommerce tabs.

Set only what you need

Fill in the rules that matter for this promotion and leave the rest blank.

See what it turns away

Shop managers see the exact rule that rejected a coupon, with full analytics in PRO.

Restriction types

Over 25 restrictions, all in one tab

Set as many or as few as you like on any coupon. All of them must pass for the discount to apply.

Products

Replaces the default product restriction, adding a minimum and maximum quantity for each product or variation.

Categories

The same minimum and maximum quantities per category, counted per cart line or summed across the whole cart.

Product Attributes

Allow or exclude products by attribute, such as a size or a colour, without listing every product.

Cart

Require a minimum cart quantity, subtotal, or total weight before the coupon can be applied.

Date

A start and end date, specific calendar months, or specific weekdays – all in your store’s timezone.

Time of Day

Allow a coupon only between two times, including happy-hour windows that run past midnight.

Customer Status

New customers only, logged in only, or guests only – so a welcome offer never goes to a repeat buyer.

User Role

Allow or block specific user roles, so wholesale or trade codes stay with the right accounts.

Payment & Shipping

Allow or block specific payment gateways and shipping methods, checked at the checkout.

Customer AddressPRO

Restrict by billing or shipping country, state, city or postcode, and cap uses per address.

Email DomainPRO

Allow or block whole email domains, ideal for corporate, student and partner perks.

Order HistoryPRO

Require a minimum total spent or a minimum number of past orders before a code works.

Purchase HistoryPRO

Require that a customer has, or has not, bought specific products before. Perfect for reorder and win-back offers.

Usage Limit Per PeriodPRO

Allow a coupon a set number of times per customer per day, per month or per rolling period.

Referring DomainPRO

Only honour a code when the shopper arrived from an approved site, so leaked codes stop working.

IP AddressPRO

Allow or block IP addresses and cap how many times one address can redeem a code.

Coupon LinksPRO

Share a link that applies the coupon automatically, and optionally make the code valid only through that link.

Meta Data & CookiesPRO

Match your own user meta, cart item meta or cookies for fully custom rules no other plugin covers.

Why store owners use it

Better discounts, fewer surprises

A coupon that applies to the wrong order costs you margin. These rules make sure that never happens.

Protect your margins

Stop coupon stacking, block codes that have leaked onto a deals forum, and limit how often one person can reuse an offer.

Target the right shoppers

Restrict an offer to new customers, returning customers, wholesale roles, one country, or one email domain.

Run smarter promotions

Happy hour discounts, weekend-only codes, seasonal offers, and “buy 2 from this category” deals, with no custom code.

Understand what is happening

See which coupons your rules turn away, and why, so you can loosen a rule that is quietly costing you sales.

Products & Categories

“Buy two from this category” deals, without code

WooCommerce lets you list which products a coupon applies to. Better Coupon Restrictions replaces that with a proper table: choose products, variations or categories and give each one a minimum and maximum quantity.

Quantities per product or variation

Require at least two of one product, or cap a discount at three, right down to individual variations.

Categories and attributes

Count category quantities per cart line or across the whole cart, and allow or exclude products by attribute such as size or colour.

Improved product and category restrictions on a WooCommerce coupon
Date, month, weekday and time of day coupon restrictions

Dates & Times

Weekend codes and happy hour discounts

Set a date range, pick the calendar months a seasonal code should run in, choose the weekdays it works on, and add a time window for a happy hour offer. Everything is evaluated in your store’s timezone.

Ranges, months and weekdays

An inclusive start and end date, plus specific months for seasonal codes and specific weekdays for weekend-only offers.

Time of day windows

Run a discount between 5pm and 9pm only. An end time earlier than the start time simply spans midnight.

Who Can Use It

Send the right offer to the right shopper

Restrict a welcome code to customers with no previous orders, keep a trade discount to your wholesale role, or limit an offer to one country, city or postcode. Guests are checked as soon as they enter an email address at checkout.

Status, role and login state

New customers only, logged in only or guests only, plus allowed and disallowed user roles for wholesale and trade pricing.

Address and email domainPRO

Country, state, city and postcode rules with wildcard support, a maximum use per address, and allowed or blocked email domains.

Customer status, user role and address coupon restrictions
Usage limit per period and purchase history coupon restrictions

Anti-Abuse

Stop a code being used over and over

WooCommerce only offers “once per customer, ever”. PRO lets you allow a code a set number of times per customer per day, per month or per rolling period, and cap redemptions per address and per IP address as well.

Usage limit per periodPRO

“Once per customer, per month” or “twice in any 30 days”. Cancelled, failed and refunded orders are never counted.

Purchase and order historyPRO

Require that a customer has, or has not, bought certain products, has spent a minimum amount, or ordered a minimum number of times.

Coupon Links

One link that applies the discount for them

Share a link and the coupon is added to the cart automatically, so nobody has to type a code. Tick one box and the code becomes valid only through that link, which makes a code that leaks onto a deals site useless to everyone else.

Auto-applied from a linkPRO

A ready-made link is shown on the coupon screen. If the cart does not qualify yet, the coupon is retried as the cart changes.

Referring domain and IP rulesPRO

Only honour a code when the shopper arrived from an approved partner site, and block or cap specific IP addresses.

Coupon link restriction that applies a WooCommerce coupon automatically
Coupon rejection analytics report in WooCommerce

Rejection Analytics

See exactly why a coupon was turned away

A rule that is a little too strict quietly costs you orders, and nobody tells you. Shop managers now see the exact restriction that rejected a coupon inline in the cart notice – customers never see that line – and PRO adds a full report.

Most rejected coupons and reasonsPRO

A report of which coupons are rejected most and which rule is responsible, filterable by period and coupon.

Custom error messages

Replace the message a shopper sees for any restriction, in your own words. Use {value} to insert the required amount.

Upgrade to PRO

Go further with Better Coupon Restrictions PRO

Unlock customer history, location and anti-abuse rules, store-wide restrictions, and full rejection analytics.

Customer Address Restrictions

Restrict by billing or shipping country, state, city or postcode, with wildcard postcode matching, and limit uses per address.

Email Domain Restrictions

Allow or block whole email domains, including subdomains, for corporate, student and partner perks.

Order History Restrictions

Require a minimum total spent or a minimum number of past orders, so a loyalty code only reaches loyal customers.

Purchase History Restrictions

Require that a customer has, or has not, bought specific products before. Ideal for reorder offers and win-back campaigns.

Usage Limit Per Period

Allow a coupon a set number of times per customer per day, per month or per rolling period, instead of only once for life.

Time Since Last Order

Target customers who ordered recently, or only those who have not ordered in a while, using a simple number of hours.

Time Registered

Reward brand new accounts with a first-week offer, or reserve a code for long-standing customers only.

Referring Domain Restrictions

Only honour a code when the shopper arrived from an approved site, so an affiliate or partner code stays with that partner.

IP Address Restrictions

Allow or block specific IP addresses, and cap how many times a single address can redeem the coupon.

Coupon Links

Share a link that applies the coupon automatically, and optionally make the code valid only when it arrives through that link.

Meta Data & Cookie Restrictions

Match your own user meta, cart item meta or cookies, for rules that are completely specific to your store.

Global Restrictions

Apply rules such as “new customers only” or “no coupon stacking” to every coupon at once, with a per coupon opt out.

Rejection Analytics

A report showing which coupons are rejected most and which rule is responsible, with a filterable log. Off by default.

Priority Support

If you ever need any support, send a message to our expert team any time and we’ll be glad to help out.

And so much more

Built to fit the store you already have

Nothing to migrate, nothing to rebuild. Your existing coupons keep working exactly as they are.

One Familiar Tab

Every setting lives in a new tab on the normal WooCommerce coupon screen. There is nothing new to learn and no code to write.

Custom Error Messages

Every section has its own message field, so you can tell shoppers exactly what to do instead of showing a generic notice.

Shop Manager Diagnostics

Shop managers see an extra line on the cart notice naming the exact restriction that rejected the coupon. Customers never see it.

Adds To What You Have

Existing WooCommerce restrictions keep working exactly as before, and any new rule you set is simply applied on top.

Works With Guest Checkout

Rules that depend on who the shopper is are checked as soon as the email address is entered, and the coupon is re-validated then.

HPOS Compatible

Fully compatible with WooCommerce High Performance Order Storage, so it keeps working on modern, high volume stores.

Block & Classic Checkout

Works with the block cart and checkout, the shortcode cart, and the classic checkout, without any extra configuration.

Fast & Lightweight

Restrictions are only evaluated for coupons that have them set, results are cached per request, and lookups use WooCommerce’s own queries.

Per Coupon Opt Out

Store-wide rules are powerful, so any single coupon can be exempted from every global restriction with one checkbox.

Translation Ready

Every label and customer-facing message can be translated, and the plugin ships with a languages folder ready to go.

Retry-Friendly Rules

Cancelled and failed orders are never counted against a customer, so a shopper retrying after a failed payment is not locked out.

Priority Support

If you ever need any help, send a message to our expert team any time and we’ll be glad to help out.

Pricing

Get started today, risk-free

Risk-free 7-day trial 14-day money-back guarantee Cancel any time
Most Popular

Pro Yearly

$29

Per year

  • 1 website license
  • Access all PRO features
  • Plugin updates for 1 year
  • Premium support for 1 year
Or try it free with a 7-day trial

Pro Lifetime

$89

One-time payment

  • 1 website license
  • Access all PRO features
  • Plugin updates forever
  • Premium support included
Or try it free with a 7-day trial

Your trust is important to us. We provide clear and fair pricing, and the price you sign up at stays the same for as long as your subscription is active, with no sudden cost hikes after the first year. Easily cancel or switch plan any time. Pricing is in USD and excludes applicable VAT. An active PRO subscription is required for future updates and support.

14-day money-back guarantee

Protected by our 14-day money-back guarantee

We look forward to helping you run tighter, smarter promotions. But if things don’t work out, simply contact us within 14 days of upgrading and we’ll refund 100% of your money, no questions asked.

Elliot Sowersby

Elliot Sowersby

Founder & Lead Developer

Here to help

Questions? We’ve got you covered

Ask a Question

Have a pre-sale question, or already a PRO user? Send us a message directly.

Contact Us →

Documentation

Our docs will explain everything you need to know about setting up the plugin.

Coming Soon

Support Forums

Check out the community support forums for help with the free version.

Go to Forums →

Take control of your coupons today

Start with the free version on WordPress.org, or upgrade risk-free with a 7-day trial and a 14-day money-back guarantee.

Better Coupon Restrictions logoBetter Coupon RestrictionsFor WooCommerce
From$29/yr
Buy Now