Disable Free Shipping for Certain Products in WooCommerce

Disable Free Shipping for Certain Products in WooCommerce
Author Bartosz Gajewski
Reading time:
3 minutes read

Offering free shipping in your online store is a great way to boost sales. However, for some products, it might be unprofitable. The solution for that is to disable free shipping for certain products. In this article, I’ll show you how to do it in WooCommerce.

In Flexible Shipping, we know a lot about free shipping in WooCommerce. We wrote a few guides, that helped many users. This time, I’m going to write about excluding some products from free shipping. Surely you can imagine this situation – you sell very different products in your store. For example, 3D printers and all their accessories. Accessories are lightweight and the cost of shipping them is not very expensive. You can easily offer free shipping above a certain amount or quantity of products to increase sales. But with 3D printers it’s different. They are extremely heavy and large, so you cannot offer free shipping for them. Unfortunately, the WooCommerce has a lot of limitations about free shipping. That’s why you need the right plugin.

Manage free shipping with Flexible Shipping PRO

To disable free shipping for certain products in WooCommerce, we recommend the Flexible Shipping PRO plugin. This is no coincidence – it is one of the best shipping management plugins in WooCommerce. We may not be objective, so let the plugin’s users speak. Flexible Shipping is used by 241,962 stores on a daily basis and with 4.9 rating in WordPress repository. 

Flexible Shipping PRO WooCommerce 89.00

The best Table Rate Shipping for WooCommerce. Period. Create shipping rules based on weight, order totals or item count.

Add to cart or View Details
100,000+ Active Installations
Last Updated: 2024-03-26
Works with WooCommerce 8.4 - 8.7.x

If you are interested in free shipping in WooCommerce, you might be also interested in the latest feature that we have added to the plugin – Display Remaining Amount to Free Shipping.

How to disable free shipping for certain products in WooCommerce?

So, now when we have the right tool, it’s time to move on. This article will show you the two most common ways to offer free shipping. In each of them, I will show how to exclude certain products from free shipping. The choice of the right solution for you will depend on the complexity of your store – the number of products, shipping classes, and the level of complexity of the shipping scenario. 

Add a new shipping class

Flexible Shipping allows setting shipping rules based on shipping classes. This will be the best way to achieve most of the scenarios presented in this article. The first step to do that will be adding the special shipping class for paid shipping products. Just go to WooCommerce → Settings → Shipping → Shipping Classes → Add Shipping Class from the sidebar and create a new shipping class. Let’s call it Paid shipping for this guide.

New shipping class - paid shipping

If you don’t know how to set up that kind of shipping, you should check our guide about free shipping over amount.

Now, add all products that you want to exclude from free shipping to that shipping class. To do that, go to the edit product page, and in the Product data box select the new shipping class. 

add products to new shipping class

Now that you have the right shipping class, it’s time to configure the shipping method. 

Free shipping over amount

First, let’s take a look at free shipping over amount and how to disable free shipping for certain products in that scenario. Add a new shipping method or edit the one you already have. Leave the Free Shipping field empty (we will use it in the next method). Make sure the Rules calculation is set to Sum.

Shipping rules calculation - Sum

Then, configure the shipping rules based on that example:

Combine free and paid shipping over amount

This way, your customer will pay $5 for shipping products from shipping class A up to $300. Over $300, the shipping fee for those products will be free. However, if there will be a product from Paid shipping class, it will always charge an additional $20 for shipping.

Of course, you can use more than one shipping class for that. Remember how to combine shipping classes in the Flexible Shipping plugin

Quantity Based Free Shipping

The second most popular form of free shipping is quantity based free shipping. We wrote another guide about that topic, so you can get more information from it. If you know how to set it, it’s time to exclude certain products from quantity based free shipping. It’s very similar to the previous case. This time, just use shipping rules based on the number of items. It should look like this:

Exclude certain products from free shipping over number of items

With that setup, your customers will pay $5 for shipping up to 5 products from shipping class A. If they will have more than 5 products from that shipping class, the shipping will be free. But, if there will be a product from shipping class Paid shipping, it will always charge an additional $20 for shipping. 


In this article, I showed you how to disable free shipping for certain products in WooCommerce using the Flexible Shipping plugin. I hope that it will be useful for you. If you’ll have any questions about it, feel free to use the comment section or contact our support. 

Notify of
Inline Feedbacks
View all comments
Paul Lyons
Paul Lyons
3 years ago

How can I have the paid shipping then look at a shipping calculation instead of a flat rate? Above the rule cost is $20. What if that is based on other factors? Size, weight

Łukasz Spryszak
Łukasz Spryszak
Reply to  Paul Lyons
3 years ago

Hi Paul, could you please describe the scenario you want to configure providing us some more details? Did you mean you want to offer free shipping if the certain conditions are met e.g. the specific weight amount is reached? If so, you can simply choose the right condition from the When column and enter the 0 shipping cost for such conditional. Once it is met, the 0 cost will be applied.

2 years ago

hi, is possible not adding a flat rate? i have shipping set up based on weight not a flat rate. so i would like disable one product, but want it based on the weight.

Łukasz Spryszak
Łukasz Spryszak
Reply to  Andra
2 years ago

Hi Andra, could you please provide us with some more details on your scenario? Do you have the Flexible Shipping cost calculation rules configured to be based on weight, want to exclude some product from being considered into free shipping and make your customers always being charged for shipping this particular product? Did I get it right?

2 years ago

Hello, I’d like to know how I can exclude virtual gift cards from counting toward free shipping value?

Łukasz Spryszak
Łukasz Spryszak
Reply to  Lisa
2 years ago

Hi Lisa, it can be done easily with our Flexible Shipping PRO plugin. If all of the products in your shop have the shipping class assigned and the virtual gift cards have not, you can simply modify the current shipping cost calculation rules based on Price to be based on Price + Shipping class. If the free shipping comes from the zero-cost rule, the products without shipping class assigned will be excluded from free shipping threshold calculation. Optionally, you can also check if the Cart Calculation option is set to Package value on the shipping method configuration screen to make sure the virtual products are not considered into shipping cost calculation.

Last edited 1 year ago by Bartosz Gajewski

Check out our case studies

Dream Home Story
Furniture shipping via WooCommerce – Dream Home’s Case Study

Learn how to configure custom shipping rules for furniture orders – from heavy and bulky to small and light.

4 minutes read
Octolize Case Study
Vitrek’s Story

Read Octolize Case Study about Vitrek – a provider of innovative global solutions for High Voltage Test and Measurement.

2 minutes read
Octolize Case Study
EnglishSpeakingMum’s Story

Read Octolize Case Study about EnglishSpeakingMum – Polish dedicated and involved parenting blogger.

2 minutes read