Skip to content
DevMarket
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on DevMarket
WordPress and WooCommerce

WooCommerce Coupons and Discounts: Setup, Rules and Abuse Prevention

How to create WooCommerce coupons, set restrictions and usage limits, add free shipping and expiry dates, schedule sale prices, understand tax, prevent abuse and check coupon reports.

By DevMarket EditorialPublished: 9 min read
WooCommerce Coupons and Discounts: Setup, Rules and Abuse Prevention
On this page

To create WooCommerce coupons, switch on coupon codes under WooCommerce > Settings > General, open Marketing > Coupons, select Add new coupon, choose a discount type, enter the amount and publish. Restrictions and limits then decide who can use the code, on what and how often, and they are your main protection against abuse. Menu paths were checked against the WooCommerce documentation as of October 2026; labels can differ in older versions.

In short

  • WooCommerce has three coupon discount types: Percentage discount, Fixed cart discount and Fixed product discount.
  • A code with no restrictions or limits can be used by anyone who has it, as often as they like, so set both before you publish.
  • Core WooCommerce does not apply codes automatically. Auto-applied and URL coupons, and tiered, bulk or role-based prices, need an extension or custom code.
  • Coupons reduce product prices before tax is calculated.
  • Analytics > Coupons shows how often codes are used and what they cost.

How do you create WooCommerce coupons?

A coupon is a code the customer types at the cart or checkout, so setup is short and the thinking goes into the conditions.

Two cards side by side, the left one with two ticked rows and the right one with five
An open coupon carries few conditions, while a protected one adds restrictions and limits before it is published.
  1. Go to WooCommerce > Settings > General, tick "Enable the use of coupon codes" and save.
  2. Go to Marketing > Coupons and select Add new coupon.
  3. Enter a Coupon code, or use Generate coupon code. Codes are not case-sensitive. The Description is an internal note that customers do not see.
  4. Choose a Discount type and enter the Coupon amount as a number only, with no currency or percentage sign.
  5. Optionally tick Allow Free Shipping and set an Expiry date.
  6. Set the restrictions and limits below, then select Publish.
Discount typeWhat it does
Percentage discountApplies a percentage to eligible products
Fixed cart discountApplies one total amount to the whole cart
Fixed product discountApplies the amount to each eligible item

Which usage restrictions and limits should you set?

The Usage restrictions tab, as the WooCommerce documentation describes it:

SettingWhat it does
Minimum spend, Maximum spendThe cart subtotal range allowed. The minimum includes tax when prices are displayed with tax
Individual use onlyThe coupon cannot be used with other coupons
Exclude sale itemsKeeps the discount off sale-priced items. A fixed cart discount can still apply when the cart has eligible items that are not on sale
Products, categories, brandsLimits the coupon to the listed ones, or requires them in the cart
Exclude products, categories, brandsBlocks the coupon for the listed ones
Allowed emailsRestricts use to listed addresses, checked against the billing email. A wildcard can match a whole domain, such as *@gmail.com

The Usage limits tab has three settings:

  • Usage limit per coupon: the total number of times all customers can use it.
  • Limit usage to X items: caps how many qualifying items get a percentage or fixed product discount. It does not affect fixed cart discounts.
  • Usage limit per user: how many times each customer can use it.

Free shipping, expiry dates and URL coupons

Free shipping coupons

Tick Allow Free Shipping on the coupon, then check the Free shipping method in the customer's shipping zone. Its Free shipping requires setting offers "A valid free shipping coupon", "A minimum order amount", "A minimum order amount OR a coupon" and "A minimum order amount AND a coupon". If a minimum applies, the checkbox "Apply minimum order rule before coupon discount" decides when it is tested. Unticked, the minimum is tested after the coupon discount. Zones and methods are in our WooCommerce shipping setup guide.

The optional Expiry date makes the coupon stop working on the date you set, and a short expiry limits how long a shared code can circulate. The documentation says core does not apply codes automatically: customers enter them at the cart or checkout, and you share them yourself. Store managers can add a coupon to an editable order with Apply coupon.

Link-based and auto-applied coupons need an extension. The Smart Coupons documentation describes coupon links that apply a code when clicked and can add products to the cart. Test that your restrictions and limits still hold when a code arrives through a link.

Sale prices and scheduled sales

A sale price is public: everyone sees it and no code is needed. In the General tab of the Product data box, enter the Regular price and Sale price, then select Schedule to reveal the "Sale price dates" From and To fields. The documentation says the To date expires at 11:59 pm and gives no start time, so test a schedule on a draft product.

For variable products, each variation on the Variations tab has its own Regular Price and Sale Price, and a bulk action, "Set scheduled sale dates", sets dates for all variations at once.

If you do not want a coupon to stack on a sale, tick Exclude sale items, or the margin is cut twice. Keep the regular price honest: a crossed-out price should be one you really charged, and rules on advertising price reductions differ by country, so check with your authority.

How do discounts work with tax and with other prices?

Tax and the cart total

WooCommerce applies coupons to product prices before it calculates tax, and splits the discount across the products to limit rounding errors, which you notice more with fixed cart discounts. Tax is therefore worked out on the discounted prices, and shipping is not discounted unless the coupon gives free shipping. Under WooCommerce > Settings > Tax you choose whether you enter prices with tax and whether shoppers see them including or excluding tax. For a Saudi store selling to consumers that normally means VAT-inclusive display, as our VAT guide explains. Follow WooCommerce tax and VAT setup, place a test order with each coupon and ask your accountant how discounts should appear on invoices.

Tiered, bulk and role-based pricing

Quantity tiers and prices by customer role are not among the coupon or sale price fields in the documentation, so they need an extension. WooCommerce's Dynamic Pricing extension, sold on woocommerce.com, documents quantity tiers, buy X get Y offers and rules that target user roles. For prices by role alone, Role Based Pricing for WooCommerce on DevMarket lets you enter a price per role on each product and variation. Its listing says customers with a configured role see that price in the shop, cart and checkout, and guests see the normal price. For the wider wholesale setup, see WooCommerce B2B and wholesale setup, and test any pricing plugin together with your coupons.

How to prevent coupon abuse

A code in a newsletter can end up on a discount site. Combine these settings:

  • Usage limit per coupon: caps total redemptions, so a leaked code runs out.
  • Usage limit per user: one use per customer for welcome offers.
  • Allowed emails: for a private offer, list the address, or a company domain with a wildcard.
  • Short expiry: shrinks the window in which a code can spread.
  • Minimum spend: ties the discount to a basket large enough to carry it.
  • Exclusions, Individual use only and Limit usage to X items: protect thin-margin lines, stop stacking and stop a large quantity multiplying the discount.

None of these is airtight. An email restriction is checked against the billing email, so someone with several addresses can still redeem a welcome code more than once. Keep watching.

Check how coupons are used

Open Analytics and choose Coupons. The report lists Coupon Code, Orders and Amount Discounted for the selected date range, and you can filter to one coupon, compare several or search by code. The Orders figure links to the Orders report filtered to that coupon, which also has Coupon Codes and Order Status filters. Review it after each campaign.

Margins and messages to customers

Example, with made-up numbers: a product sells for SAR 100 before VAT and costs you SAR 70 to buy and pack, leaving SAR 30. A fixed cart coupon of SAR 20 leaves SAR 10. If the code also removes a SAR 15 shipping charge that normally covers your courier cost, the order loses SAR 5. Judge discounts against the price before VAT, and ask your accountant.

State the conditions next to the offer: the amount, any minimum spend, exclusions, one use per customer and the end date. When a code fails, WooCommerce shows a message, and its documentation lists the usual causes: expiry date, spend range, product restrictions, billing email and usage limits. Make your wording match your settings. In Saudi Arabia the price details shown before an order are expected to include taxes and other costs: see our shipping and cash on delivery guide.

Before you announce a code, test it as a guest in a private window: a valid order, an order below the minimum, a sale item, an excluded product, a second use, and a different billing email if you restricted by email. Check the totals, tax and shipping each time.

Frequently asked questions

Can customers use more than one coupon on an order?

Unless a coupon has Individual use only ticked, it can be used with other coupons, subject to their own settings. Test the combinations before you announce a generous code.

Why does my coupon say it is not valid?

Check the expiry date, spend range, product and category restrictions, allowed emails and usage limits, the usual causes in the WooCommerce documentation.

Do coupons reduce shipping costs?

Not unless it is a free shipping coupon. Other coupons reduce product prices only.

Can a coupon apply to sale items?

Yes, unless Exclude sale items is ticked. Decide per coupon whether sale and coupon discounts may stack.

Next steps

Write a coupon's conditions down, set the restrictions and limits, then test it as a guest. Read WooCommerce tax and VAT setup before you rely on discounted totals, and how to reduce cart abandonment in WooCommerce for coupons in recovery emails. You can also browse WooCommerce plugins on DevMarket.

Items mentioned in this article

The software this guide talks about, ready to look at.

  • PluginNew

    Role Based Pricing for WooCommerce – Wholesale & B2B Discounts

    Set a custom price per user role for wholesale and B2B customers: lightweight, no bloated membership features, with variable product support.

    by TAQNIX
    No reviews yet
    Sales:0$29.00

Find the right software for the job

Every item on DevMarket has a human-reviewed release, an instant licence key and clear update and support terms.