To add an automatic discount in WooCommerce, install Disco, a free WooCommerce dynamic pricing and discount rules plugin, create a discount rule (for example, 15% off all products), and assign it to the products or cart conditions you want. WooCommerce applies the discount the moment a shopper’s cart matches your rule. No coupon code required.
That last part matters: an automatic discount is different from auto-applying an existing coupon code. With Disco, the discount rule itself replaces the coupon entirely, so there’s no code for the shopper to find, copy, or forget.
This guide walks through setting up automatic discounts using Disco, plus a custom-code method if you’d rather skip the plugin.
How to set up an automatic discount in WooCommerce using Disco
WooCommerce has no built-in tool for coupon-free automatic discounts. You need a plugin. Disco is free, handles product, cart, bulk, bundle, BOGO, and customer-based discount types, and applies rules the moment a shopper qualifies.
Here’s how to set up a storewide 15% discount as a working example:
- Install Disco. In your WordPress dashboard, go to Plugins > Add New, search for Disco, then click Install and Activate.
- Open the Disco menu. After activation, find Disco in the left panel and click it to open the dashboard.
- Create a discount rule. Click Create a Discount in the Disco dashboard.
- Name the rule. Enter a descriptive name, such as “15% Storewide Discount.”
- Select the scope. Under Discount Intention, choose Product. Under Discount, select All Products for a storewide rule.
- Set validity (optional). Add start and end dates if the discount should run for a limited time.
- Define the discount type and value. In Product Rules, select Percentage and enter 15.
- Save the rule.
- Verify it on the storefront. Visit the storefront and cart page to confirm the discount applies automatically.
WooCommerce automatic discount strategies you can build with Disco
A storewide flat discount is only one option. Disco’s condition filters let you target the discount by cart contents, order total, product category, or customer type, so you can run several strategies at once without stacking conflicting coupon codes.
Fixed amount discount on all products
Say you want to knock a flat $10 off every product instead of a percentage.
Keep the same top-level settings as the percentage example. Instead, select Fixed or Fixed Per Cart Item from the Discount Type dropdown, enter the discount value, and save. The plugin subtracts the fixed amount on the cart page automatically.
Quantity-based discount
This one’s worth setting up if you want to nudge shoppers toward buying more per order — say, 15% off when a customer buys 5 or more of any item.
Start with the Cart discount intention and select All Products for a storewide rule. Enter the percentage value, then click Add Condition and choose Cart Items Quantity from the filters. Select Greater Than Or Equal and set the value to 5. Disco applies the 15% discount as soon as the cart quantity condition is met.
Cart subtotal (order total) discount
Cart subtotal discounts reward customers for spending more, which raises average order value — a common one for stores trying to push past a $100 or $150 order threshold. Here it’s 10% off when the cart total exceeds $100.
Start with the Cart discount intention, select your products, and set the percentage. Add the Cart Subtotal condition from the filters, choose Greater Than Or Equal, and enter 100. Test it by adding $100 or more worth of items to the cart. The 10% discount should apply to the subtotal automatically.
Tiered bulk discount by quantity
For stores that sell in volume, a single quantity threshold usually isn’t enough — you’ll want tiers. For example: 10% off for 3-5 items, 15% off for 6-10 items, and 20% off for 11 or more.
Select the Bulk discount intention and choose your products. In the Bulk Rules section, add one row per tier: minimum and maximum quantity, then the discount percentage. Click Add More between rows. Leave the maximum quantity field empty on the last row so any quantity above 11 still gets the 20% rate. Disco applies whichever tier the cart quantity falls into.
Category-based discount
Category discounts work well for clearing seasonal inventory or promoting a specific line — for instance, 15% off everything in the “Summer Collection” category.
Select Product or Cart as the discount intention, set your percentage, then add the Categories condition and search for the category you’re targeting. Once saved, the discount shows automatically on the category and product pages.
Returning customer, first-time buyer, and user role discounts
Disco’s customer conditions let you target a discount by who the shopper is rather than what’s in their cart: user role (wholesale, VIP, or any custom role), logged-in versus guest, first-time versus returning customer, number of previous orders, or lifetime spend.
Take rewarding loyalty as an example: 10% off for shoppers who’ve placed 3 or more previous orders.
Set your discount intention and percentage as usual, then add the Customer condition from the filters. Choose the Order Count option, select Greater Than Or Equal, and enter 3. To run a first-time buyer welcome discount instead, use the First-Time Customer option in the same condition group. To offer wholesale or VIP pricing, use the User Role condition and select the target role.
How to set up an automatic discount using custom code
If you’d rather not install a plugin, you can write the discount logic directly into your theme. Here’s a $10 fixed discount that applies once the cart subtotal reaches $100:
- Open your theme’s functions file. Go to Appearance > Theme Editor, then select functions.php in your active theme.
- Add the discount code. Paste the following at the end of the file:
add_action( 'woocommerce_cart_calculate_fees', 'apply_fixed_discount', 10, 1 );
function apply_fixed_discount( $cart ) {
if ( is_admin() || ! is_cart() && ! is_checkout() ) return;
$required_subtotal = 100;
$discount_amount = 10;
if ( $cart->subtotal >= $required_subtotal ) {
$cart->add_fee( __( 'Automatic Discount', 'woocommerce' ), -$discount_amount );
}
}
- Save the file.
- Test it. Add $100 or more worth of items to the cart or checkout page and confirm the $10 discount appears.
Adjust $required_subtotal and $discount_amount to match your own rule. This approach works without a plugin, but it only handles one condition at a time, and every new rule means editing code again. Fine for a single storewide rule; not something you’d want to maintain once you’re running more than one or two discount types.
Best WooCommerce discount plugin for automatic discounts: Disco
Disco is a free WooCommerce dynamic pricing and discount rules plugin built to replace coupon codes with rules that apply on their own. Every example above used Disco, and the free version covers all of them without a paid upgrade.
Key features
- Discount types: Product, cart, bulk, bundle, BOGO, and free shipping rules, all without coupon codes.
- Customer conditions: User role, logged-in versus guest, first-time versus returning customer, order count, and lifetime spend.
- Cart and product conditions: Cart subtotal, cart item quantity, product category, tag, and attribute.
- Scheduling: Start and end dates so campaigns turn on and off automatically.
- Variable product support: Rules apply across matching product variations.
Check the official pricing page for the current split between free and paid features, since plugins update their tiers over time.
Frequently Asked Questions
Does WooCommerce have a built-in automatic discount feature?
No. WooCommerce ships with coupon codes only, which shoppers have to enter manually. To apply a discount automatically based on cart contents, order total, or customer type, you need a plugin like Disco or a custom code snippet added to your theme.
What’s the difference between an automatic discount and an auto-applied coupon?
An automatic discount rule replaces the coupon entirely: there’s no code at any point. Auto-applying a coupon still uses a real coupon code, just entered into the cart programmatically instead of by the shopper. If you specifically want to auto-apply an existing coupon rather than build a coupon-free rule, that’s a separate setup covered in our auto-apply coupon guide.
How do I set up a discount that applies automatically once the cart total passes $100?
Using Disco: create a Cart discount, add the Cart Subtotal condition, set it to Greater Than Or Equal to 100, and choose your discount type and value. Using custom code: add a woocommerce_cart_calculate_fees hook that checks $cart->subtotal against 100 and applies a fee with a negative value.
Can I set up automatic discounts for returning customers only?
Yes. Disco’s Customer condition includes a First-Time versus Returning Customer filter and an Order Count filter, so you can target shoppers who’ve placed one or more previous orders without affecting first-time buyers.
Is Disco free to use?
Yes, the core plugin is free. Some advanced features may sit behind a paid tier, so check the current pricing page before assuming a specific feature is included.
Key takeaways
- WooCommerce has no native automatic discount feature. You need a plugin (Disco) or a custom code snippet.
- An automatic discount rule and an auto-applied coupon code aren’t the same thing. Rules skip the code entirely.
- Disco supports storewide, fixed, quantity, cart subtotal, tiered bulk, and category discounts, all condition-based.
- Customer conditions (user role, returning customer, order count, lifetime spend) let you target loyalty and wholesale pricing without a separate plugin.
- Custom code works for a single, simple rule but doesn’t scale well past one condition.
- Test every rule on the storefront and cart page before relying on it in production.
Free version on WordPress.org. Every Pro licence includes a 30-day money-back guarantee.