This question is from Gavin on his WooCommerce store:

I want to offer a 100% discount on products in my “Gift” category, but when customers get the free product (it’s for people that sign up for our marketing newsletter) they can add other products to the cart to for free. I want to discount the whole category, not just a product, so I’m using a cart discount. Is there a plugin that will let me discount a category?


There’s absolutely a way to do this, and it won’t require a plugin 🙂 We’ll just need to make an adjustment to the way our WooCommerce coupon has been set up to only apply the coupon to the desired products.

A Product % Discount is what we want to use in this case, as this will not limit the discount to one product alone; instead, it applies the discount to any products that meet the coupon criteria (which can be a particular category), but will not discount other products. We can still include a “Product Category” usage restriction for a Product % Discount.

If we use the current set up for a Cart % Discount, we can set up a 100% discount, restricted to our “Gifts” category:


WooCommerce Free Gift Discounts: cart coupon

Coupon general settings



WooCommerce Free Gift Discounts: cart coupon 2

Coupon usage restrictions


The issue here, which is what Gavin is running into, is that the usage restriction serves as an “if” check in this situation: “If a product from the “Gifts” category is present, apply a 100% discount to the whole cart.” This isn’t what we want.

WooCommerce Free Gift Discounts: cart coupon applied

Undesired outcome

Instead, we want the coupon to act this way: “If a product in the cart is in the “Gifts” category, discount the product 100%. Leave other products alone.” This is exactly what a Product % Discount will do, and this discount can be used on more than one product in the cart. Let’s adjust this to a Product % Discount:

WooCommerce Free Gift Discounts: product coupon

Change to Product Discount

And now my discount will successfully apply to only my gift product, while other products will require payment:

WooCommerce Free Gift Discounts: product coupon applied

Desired outcome

On a final note, you can also limit how many times the product discounts “stacks” for the coupon. For example, let’s say you want to allow customers to stack up to 3 gifts with their one-time use. You can set a quantity for “limit usage to X items”, and the coupon will discount X number of applicable products.

If the customer adds more than the coupon quantity allows, the discount will no longer be applied.

WooCommerce Free Gift Discounts: product coupon applied

Limit applied

As a final note, the WooCommerce Free Gift Coupons ($29) plugin may be helpful in this situation if you want to add specific gift products to the cart for the customer. You can set up a coupon as usual, and if it’s applied, your “free gift” product(s) will be added to the cart (along with any discounts from the coupon) and be marked as “Free”.

Hope this helps with your gift-giving, Gavin!


Got your own question? You can submit it here!


Cover Photo Credit: Stefan Baudy (CC BY 2.0 license)
Articles you may also like:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.