To set up a WooCommerce category discount, install a discount rules plugin like Disco, create a new discount campaign, set the discount type and value, then add a “Categories” condition so the rule only applies to products in that category. Core WooCommerce has no built-in way to discount an entire category, so a plugin fills that gap without custom code.
This guide walks through the full setup, then covers the other common category-discount scenarios: free shipping by category, bulk quantity discounts, cart-total thresholds, and time-limited campaigns.
How to set up a WooCommerce category discount using Disco
Disco is a free WooCommerce discount rules plugin that applies percentage, fixed, bulk, or free-shipping discounts automatically, based on conditions you set, with no coupon codes for customers to find or enter. Here’s how to set up a flat 10% discount on everything in a “Men” category.
Step 1: Getting Started With Disco Plugin
The easiest and simplest way to add category discounts in WooCommerce is by using a plugin. But out of all the tools available, which one should you choose?
Well, let us introduce to you Disco – the All-in-One WooCommerce Discount plugin. This versatile freemium plugin lets you create all sorts of discounts based on different user conditions. And of course, you can make WooCommerce discounts by category easily with it.
Now, to use it, you have to install and activate this WooCommerce category discount plugin. So, from the left-hand side of your WordPress Dashboard, go to Plugins>>Add New Plugin.
Then search for the “Disco” plugin. After that, install and activate the plugin.
Now, let’s set up a flat 10% discount on all the products in the “Men” Category.
Step 2: Select Discount Campaign Name and Choose Discount Intention
To use the Disco plugin, click on the Disco menu from the left-hand side of your WordPress panel. Then click on “Create a Discount” to make your category discount campaign.
There, give your discount campaign a name. In this part, we will be making a basic category discount campaign based on the products. So, select the discount intention as “Products” for now.
Step 3: Selecting Discount Rules
Next up, in the “Discount” section we need to add the the discount rules. Here, you should choose between all products and specific products. As you can see, we have gone for “All Products”. Don’t worry, we will select the specific categories later on.
How can I set a user limit for a WooCommerce category discount?
You can set a fixed user limit for your category discounts in WooCommerce using the “User Limit” field of the Disco plugin.
For example, We will be selecting the user limit as 30, so the discount can be used for a total of 30 times.
You can also, set a date validity for your Discount campaign in the “Valid Between” field.
Step 4: Setting up Discount Type and Value
In the “Product Rules” section you will be able to add the Discount type and value. So, you should add the discount type as “Percentage”. Keep in mind that you could also select it as fixed, fixed per cart item, or free.
Now, add the discount value as “10” in order to add a 10% discount.
Step 5: Setting up User Conditions (Categories)
In this step, we will be selecting the specific categories as user conditions. Now, to do that, firstly click on “Add Condition”.
Then, from the Filtering options, select “Categories”.
After that, select the “In List” options and choose the “Men” category.
Key Note: “In List” refers to the category you want to include in the discount. For example, if you select the “Men” category, only products within that category will be eligible for the discount.
On the other hand, “Not In List” excludes a category from the discount. So, if you add the category “Gadget” under “Not In List,” the discount will apply to all products in your store except those from category “Gadget.”
Step 6: Click “Save & Exit”
Scroll down below and click on the “Save & Exit” button.
That’s it for the WooCommerce category discounts setup process. It will launch and run your campaign. You can enable and disable the campaign anytime you want with just one click.
Now, we have to check out if the discount really applies to the products in the “Men” category. Let’s order a product from the front end.
As you can see, the “Black Slim Fit Classic Stretch Jeans” product belongs to the “Men” category.
Now, whenever the customers order it, they are going to get a 10% discount on it. The regular price was $40, but after the 10% discount, the price came down to $36.
Let’s try out WooCommerce discount by category for multiple other scenarios.
How do you set free shipping for a specific category in WooCommerce?
Under this scenario, we will be applying free shipping-based discounts on all the products of one of our categories.
For Example, let’s set up Free Shipping on any products from the ‘Home Appliances’ Category.
As usual, start by, going to Disco Menu>>Create a Discount again.
Give your discount campaign a name and choose the discount intention as “Free Shipping”.
Then, as we will be providing this discount to all the products of our “Home Appliances” category, choose “All products”.
Afterward, to add the specific category rule, go down below and click on “Add Condition”.
In the next step, from the filtering options, select “Conditions”. Then search and select your desired category. In our case, we have obviously selected the “Home Appliances” category.
Click on the “Save & Exit” button.
That’s it! Your campaign is up and running.
Let’s check it out. You can see down below that the coffee Maker belongs to the “Home Appliances” category.
Now, if anyone orders that, they are going to get the shipping for free.
How to Set WooCommerce Category Discounts Based on Product Quantity?
In this case, we will be setting up WooCommerce percentage category discounts based on product quantity.
Example: Get a 15% flat discount on purchasing 3 or more units of a product from the ‘Gym’ category.
In this scenario, a percentage discount is applied when customers buy 5 or more units of any product from the selected category.
Just like we did in the previous examples, let’s begin by giving the discount campaign a name and select the discount intention as “Bulk Discount” this time.
Select “All Products” in the Discount Rules section.
Then, in the “Bulk Rules” section set the “Minimum Quantity” as 3 and keep the “Maximum Quantity” field empty.
Key Note: Here, keeping it blank means an unlimited amount of products.
Set the discount type as a percentage and the value as 15.
In the next phase, select the “Categories” filter in the conditions section. Then, search and select your category.
Save it. Now, let’s test it out from the front end. You will find that, there is no discount on our “Coffee Maker” product from the “Home Appliances” category.
But, if someone orders at least 3 or more units of any product from the ‘Gym’ category, he or she will get the 15% WooCommerce bulk discount category on it.
How to apply WooCommerce category discounts based on order total?
Under this scenario, we will be applying Category Discounts based on the total amount of the order.
Example: Get $50 Off on orders of at least $750 from the category “Home Appliances”.
In this example, customers receive a flat $50 discount when their purchase from the “Home Appliances” category is at least $750 or exceeds the amount of $750.
Give your Discount campaign a name and select the Discount intention as “Cart”.
Then, choose “All Products”. After that, from the “Cart Rules” section choose the discount type as “Fixed” and input the discount value as $50.
Now, for this example, we will select two conditions.
- The usual Category selection.
- The cart subtotal is equal to or exceeds $750.
To add the first condition, select the “Categories” filter and under the “In List” option, choose “Home Appliances”.
Let’s add up the second condition. Simply, click on the “Add Condition” option below it.
Another similar window will come up. Now, from the filtering options, you should select “Cart Subtotal”. Then choose the “Greater Than or Equal” option and input the value $750.
One important thing! Between the two conditions, you will find “And/Or” options. Here, you must select the “And” option as you want to run these two conditions together.
Click on “Save & Exit”. Your campaign will be launched and running.
Let’s test it out.
If someone orders one of our “Home Appliances” category’s products “BLUEAIR Air Purifiers” for anything less than $750, that person won’t be getting any discounts.
But, the moment, he adds another “Home Appliances” product and the cart total exceeds $750, he will get a flat $50 discount on it.
Apply Category Discounts in WooCommerce for a Limited time
A lot of people ask, “Is it possible to limit a category discount to only apply during holidays?”
Yes, you can set up a category discount to apply only during certain times of the year using the Disco Plugin’s “Valid Between” Feature.
In fact, for this example, a flat $5 discount is applied to all products within the “Men” category, but only for a specific promotional period.
In a new discount campaign setup window, set up your Discount campaign name and select the Discount intention as “Product”.
Afterward, choose “All Products”
Here’s the interesting part! In the “Valid Between” field, you can set up the date validity in just a couple of seconds. For instance, we want to offer a discount on Halloween week. So, we have selected the dates from 22nd October 2024 to 31st October 2024.
Now, the discount will only apply during this promotional period.
Next up, add the Discount type as “Fixed” and the discount value as 5. Then select the Categories filter and add the “Men” category.
Click on “Save & Exit”.
Now, whenever someone orders any product from the Men category during this promotional period, he or she will get a $5 discount.
As you can see down below, a men’s t-shirt product from the “Men” category is getting a $5 discount. But on the other hand, there is no discount available for the Water bottle.
That’s it! Hopefully, now you know everything related to WooCommerce add discounts to a category. Let’s have a quick look at the category discount’s importance and some best practices related to it.
How to run a category discount for a limited time
The “Valid Between” field handles time-limited campaigns without any extra setup. This example gives a flat $5 off the “Men” category, but only during a specific promotional window.
Set the discount intention to Product, choose All Products, and enter the promotion’s start and end dates in Valid Between (for example, October 22–31 for a Halloween-week sale). Set the discount type to Fixed, value 5, and add a Categories condition for Men. Save and exit.
During the promotional window, a men’s t-shirt gets the $5 discount. A water bottle outside that category doesn’t, and neither product gets the discount once the window closes.
7 best practices for WooCommerce category discounts
- Set a clear objective first. Decide whether the goal is clearing inventory, raising average order value, or driving a seasonal push, since that changes which discount type fits.
- Use time-limited offers. An expiration date creates urgency. The “Valid Between” field handles this without a separate countdown tool.
- Segment by audience. Combine a category condition with a user-role condition to reserve a deal for a specific group, like wholesale accounts or VIP customers.
- Watch your margins. Work out the lowest price you can offer on a category before a discount stops being profitable, then set the value below that line.
- Promote it where customers already are. Email, on-site banners, and social all work; the discount rule itself doesn’t drive traffic to the offer.
- Track performance. Disco’s paid plan adds reporting for campaign performance; check the current pricing page for what’s included before you plan around it.
- Test discount types against each other. Percentage works well across a wide price range; a flat amount tends to read as more concrete on lower-priced items. Run both on similar categories and compare.
Troubleshooting common WooCommerce category discount issues
| Issue | Likely cause | Fix |
|---|---|---|
| Discount not applying at checkout | Conflicting rules or a plugin conflict | Review active campaigns for overlapping rules; disable other plugins one at a time to isolate the conflict; confirm the campaign itself is enabled |
| Incorrect discount amount | Misconfigured discount type or value | Recheck whether the type is set to Percentage or Fixed, and confirm the value matches your intent |
| Discount applying to the wrong products | Products tagged in the wrong category | Verify each product’s category assignment before troubleshooting the rule itself |
| One campaign affecting an unrelated promotion | Two campaigns running at once with overlapping scope | Disable one while the other runs, or stagger them with different Valid Between windows |
| Customers reusing a discount repeatedly | No usage cap set | Set a User Limit on the campaign |
Frequently Asked Questions
Can I limit a WooCommerce category discount to specific customers?
Yes. Add a condition based on user role, country, or similar customer attributes alongside the category condition, using the same “And” logic shown in the cart-total example above. This restricts the discount to the group you choose without a separate coupon system.
Can category discounts in WooCommerce apply only to variable products?
Yes, add a second condition filter set to Product Type > In List > Variable Product, alongside the category condition. Both conditions need to be true for the discount to apply.
How do I exclude a category from a WooCommerce discount?
Set a category condition to Not In List instead of In List, then select the category you want excluded. The discount applies to every other category in the rule’s scope, and the excluded one is skipped entirely.
How do I set expiration dates for a category discount?
Use the Valid Between field when building the campaign to set a start and end date. The discount stops applying automatically once the window closes, with no manual deactivation needed.
What’s the difference between a category discount rule and a coupon?
A coupon requires the customer to find and enter a code. A category discount rule applies automatically the moment a matching product or cart meets the conditions, with no code involved.
Key takeaways
- Core WooCommerce has no native category-level discount, so a rules plugin like Disco fills that gap.
- Percentage, fixed, free shipping, and bulk discount types can all target a category condition instead of individual products.
- “In List” includes a category; “Not In List” excludes it, useful for storewide sales that skip one category.
- Combine a category condition with a cart-subtotal or user-role condition using “And” to layer requirements.
- The “Valid Between” field handles time-limited campaigns without extra plugins.
- Set a user limit if you need to cap total redemptions and prevent overuse.
Free version on WordPress.org. Every Pro licence includes a 30-day money-back guarantee.