Free shipping for specific products in WooCommerce

Free shipping for specific products in WooCommerce
Author Łukasz Spryszak
Reading time:
3 minutes read

No matter if you are a huge shop owner selling worldwide the thousands of products per month or you run a small store targeted for the narrow audience, there might be some products you want to offer the free shipping for. In this guide I will show you how to set the free shipping for specific products in WooCommerce using the shipping classes. All in just three steps.

Offering the free shipping has been proven to boost the sales and to keep the customers satisfied as well. The higher the satisfaction level is because of the shipping savings, the higher is the chance the customers will return to shop more. So, why not to use it to your advantage, especially since it is pretty easy to set up? To make it even easier I will use the…

Flexible Shipping PRO plugin

With this ultimate shipping solution loaded with lots of useful features you will be able to set everything in no-time. It supports the shipping classes allowing not only to configure the free shipping for specific products in WooCommerce but to define the completely different table rates for numerous groups of products as well. Give it a try and join more than 100,000 Flexible Shipping users worldwide.

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-06-02
Works with WooCommerce 8.6 - 9.0.x

How to configure the free shipping for specific products in WooCommerce?

Let’s start with the first step and create a new shipping class. Choose WooCommerce → Settings → Shipping → Shipping Classes → Add Shipping Class from the sidebar and name it as you like. I called it Free shipping for the purposes of this guide:

Free shipping for specific products in WooCommerce - Creating a new shipping class

If you are not familiar with using the shipping classes or want to know more about them check our detailed shipping classes guide →

If the shipping class has been successfully created you can move on to the second step. Let’s assign it now to the specific product or group of products. To achieve that find the product in your shop you want the free shipping to be applied to and hit the Edit product button. On the product details page scroll down to the Product Data section. In the Shipping tab assign the Shipping class you’ve previously created to the product by choosing it from the dropdown:

Free shipping for specific products in WooCommerce - Assigning the shipping class to the product

Save the changes with Update button and proceed to the final step.

Please mind that you can assign the shipping class to more than one product this way as well. If you want the free shipping to be applied to the selected group of products simply repeat the steps above for all the goods that you want to be shipped for free.

Adding the rule granting the free shipping for specific products with Flexible Shipping PRO

The only thing left you need to do is to define how the shipping costs should be calculated for the products with Free shipping shipping class. You can say the answer is pretty obvious – it should be free, however, it still needs to be configured. Start the whole process with creating a new shipping method handled by Flexible Shipping:

Free shipping for specific product - Shipping method handled by Flexible Shipping

Hit the Edit link which will appear after moving the mouse over the shipping method’s title and go to the shipping method configuration screen. After filling in the required fields above scroll down to the Shipping Cost Calculation Rules table. Add a new rule and:

  • choose When: Shipping Class,
  • cart contains: Free shipping
  • set rule cost is: 0.
Free shipping for specific products in WooCommerce - Free shipping rule

Save the changes using the button below. As a result of the setup above every time the customer adds the product with Free shipping shipping class into the cart, he will see the shipping method you created and it will be cost-free.

Hiding the other shipping methods if there is a product with a specific shipping class in the cart

If you want the other shipping methods to remain hidden when the customer puts a product with Free shipping shipping class into the cart, you should edit the existing shipping the way described below:

  • add the same rule you did previously to set the free shipping for specific products and move it to the first place in the rules table,
  • select the Hide special action in the last column.

Free shipping for specific products in WooCommerce - Hiding the other shipping methodsPutting this rule on the top will result in checking if its condition is met first. Selecting the Hide special action in turn will prevent the WooCommerce from calculating the following rules. So, if the customer puts only the product with Free shipping shipping class into the cart only the free shipping method will appear. Other paid methods will remain hidden.

If it comes to hiding you may also check our guide How to offer WooCommerce free shipping over amount and hide other shipping methods →

Or if you want to further increase conversion, check out our WooCommerce shipping plugins.

Notify of
Inline Feedbacks
View all comments
صالون بدبي
4 years ago

صالون بدبي

How to set the free shipping for specific products in WooCommerce?

May May Gong
May May Gong
3 years ago

What if we wish to offer free shipping ONLY for the items in “free shipping class” but still need to charge shipping based on rate table for any other products the customer purchases in addition to the one that gets free shipping? Our problem is that either the cart does NOT offer free shipping for the specific product – or – it offers free shipping for everything and anything added to the cart. Help! What are we doing wrong?

Łukasz Spryszak
Łukasz Spryszak
Reply to  May May Gong
3 years ago

Hi May May, the right solution in such case depends on the fact if the other products you are selling in your shop have different shipping classes assigned or not. If not, you can use the When: Shipping Class: None condition to target all the products which shouldn’t be shipped for free and set the cost calculation rules for them. Then you should create one more rule for the free ones using the When: Shipping Class: Free shipping condition, set 0 as its cost and make sure the Rules Calculation is set to Sum. However, if you use more shipping classes for the products in your shop and e.g. all of them have different ones assigned, you should simply define the rules for shipping classes combinations to make the specific rules be triggered when there are certain products in the cart.

Giovanni Caridi
Giovanni Caridi
2 years ago

I sell products in dropshipping, so I created 10 different shipping classes (one for each supplier) to charge the correct shipping price if customer put in the cart two products coming from two different my suppliers. I’m using package feature to do it with Group By set to Shipping class and method to Package.
I want to set now a free shipping amount threshold logic for each Shipping class
For example if in the cart I have a product’s amount of Supplier A that is above the free shipping threshold and product’s amount of Supplier B that is below the free shipping threshold, I need to charge a shipping cost relative the Supplier B and free shipping cost for Supplier A.
How can I set the plug in to do it?

Thanks for support


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