🔥 BLACK FRIDAY DEAL: -20% on all plugin bundles! Don’t hesitate – offer ends 30.11 ⏰ BUY NOW →
Subscribe to our newsletter
In this guide, you’ll learn exactly how to disable a WooCommerce shipping method for certain products using Flexible Shipping PRO. Disabling shipping methods for specific products is a useful option for many online stores that sell a diverse assortment. Unfortunately, WooCommerce itself does not offer this option. So in this situation, it is worth reaching for an additional plugin.
WooCommerce gives you a simple and flexible way to set up shipping, but its core system is built around shipping zones and shipping methods, not product-level rules. Each method you configure applies to the whole zone, and WooCommerce doesn’t include a mechanism that checks what products are currently in the cart before showing or hiding a method.
WooCommerce’s core shipping engine is built on three pillars:
Nowhere in this architecture does WooCommerce include a product-specific rules engine. This is by design – the platform historically prioritized simplicity for small stores.
BuiltWith’s data shows that over one million WooCommerce stores operate with more than 50 products, which clearly illustrates how common larger and more complex product catalogs have become. When stores reach this scale, their shipping needs naturally become more diverse – and simple zone-based rules are no longer enough.
This limitation becomes visible especially when you need to hide or disable specific WooCommerce shipping methods based on product, category, tag or shipping class. Some products may require different carriers, special packaging, or may simply not qualify for certain methods like Local Pickup or Free Shipping. Without product-based conditions, WooCommerce will still display all methods assigned to the zone, even if they’re not appropriate for the item.
Because of this, most stores that need more advanced logic rely on plugins. Tools like Flexible Shipping PRO add the missing conditional layer and allow you to hide or disable shipping methods based on the exact products, categories, tags or shipping classes in the customer’s cart. In practice, this means that WooCommerce provides the basics, but as soon as you need more control over when a method should be visible, you need to use an additional plugin.
The Flexible Shipping PRO plugin is one of the most powerful shipping tools for WooCommerce. Its basic functionality is to set the shipping cost based on numerous conditions, but the plugin will also work great for hiding shipping methods on the cart page. All available conditions for pricing, are also conditions for hiding methods. It allows you to hide shipping methods based on various conditions like:
In this article, I will focus on how to disable a WooCommerce shipping method for certain products. If you want to read about other conditions, take a look at our guide about hiding shipping methods in WooCommerce.
The best Table Rate Shipping for WooCommerce. Period. Create shipping rules based on weight, order totals or item count.
View Details or Add to cartI will show you how to hide shipping methods for specific products in WooCommerce in a few simple steps. Here they are:
It’s very simple, so let’s get on with it!
Having the Flexible Shipping PRO plugin installed and activated, go to WooCommerce → Settings → Shipping → Shipping Zones, and choose the Shipping Zone where you want to disable shipping method for certain products. Then, click the Add shipping method button. You’ll find it at the bottom of the shipping methods table:
In the window that will appear, choose the Flexible Shipping from the dropdown list and confirm with Add shipping method button:
Thereafter, you should have your own Flexible Shipping method in your shipping zone:
Click on its name to configure shipping method.
In the configuration page, you can enter Method Title, Method Description and use all features of the Flexible Shipping plugin. The most important element, however, is the Shipping Cost Calculation Rules table. You’ll find it on the bottom of the configuration page:
There, you can set the cost for your shipping method. You can use different conditions to determine shipping cost, but if you want to set flat rate, just use Always. For example, if you intend to charge $10 for shipping, set it like that:
Let’s get back to the purpose of this setup, which is disabling WooCommerce shipping method for certain products. To achieve that, all you have to do is to add a new rule with Add rule button and select the proper condition.
As you can see, you can choose from multiple conditions available in the Flexible Shipping PRO plugin. When it comes to conditions based on products, you have four options:
For each of them, the implementation method is the same. As an example, I will use a single product feature. To hide WooCommerce shipping method for certain product, select Product from the conditions list. Then a product selection box will appear in the table. It contains all the products created in your store. To add them, enter their name and select a specific product from the list.
You can add multiple products to that list, but in this case, you should use the proper conditional logic operator. You’ll find it just before the product selection field:
You can use any to hide shipping method if one of the chosen products will appear in the client’s cart. The other option is to use all to hide the shipping method only when all the selected products will appear in the client’s cart at the same time.
Having all the products selected, you can use the most important option in the Shipping Cost Calculation Rules table. Change the Special action to Hide.
This setting will cause that when the selected product appears in the customer’s shopping cart, this shipping method will stop displaying in the cart and on the order page. Remember to Save changes, and that’s it.
The process is identical for:
Simply choose a different condition when adding your rule.
This is useful when you want to:
If you are unsure which condition to use, below you will find a table describing each of the Product-Based Conditions available in the Flexible Shipping PRO plugin.
| Condition Type | What It Does | Example |
|---|---|---|
| Single Product | Targets one or multiple specific products | Hide courier shipping for a fragile item |
| Product Category | Applies the rule to all products within the selected category | Disable free shipping for premium categories |
| Product Tag | Allows grouping products based on tags for shipping logic | Hide express shipping for items tagged as “Fragile” |
| Shipping Class | Uses logistics-based grouping to apply visibility rules | Hide small parcel options for oversize shipping classes |
Need more insights on how the special action mechanism works? Watch the video below:
If a store ships part of its inventory from another warehouse or a drop-shipping partner, some shipping methods simply don’t apply.
Controlling which shipping methods appear for specific products is essential for any store that sells items with different sizes, handling requirements or fulfillment rules. Since WooCommerce doesn’t offer product-based visibility out of the box, using a plugin like Flexible Shipping PRO is the most reliable and efficient way to build clear, predictable shipping logic.
Once you start working with product-based conditions, managing complex catalogs becomes much easier – and your customers benefit from a smoother, more intuitive shopping experience. If you want to take your WooCommerce shipping to the next level, adding conditional rules is one of the simplest and most effective improvements you can make.
You can hide a shipping method for a specific product by creating a conditional rule in Flexible Shipping PRO and setting the “Special action” to Hide. This tells the plugin to hide the method from the cart and checkout whenever the selected product is present. It’s a clean and reliable way to control visibility without writing custom code or modifying theme files.
Yes, Flexible Shipping PRO supports category-based conditions, allowing you to apply rules to entire groups of products at once. This is useful when you sell items that share similar size or fulfillment requirements. Instead of configuring each product individually, you can manage all category-level rules from a single interface.
The “Hide” action affects the shipping method globally, so it disappears from both the cart and the checkout. This ensures a consistent user experience and avoids confusion caused by showing different options on each step. The logic is evaluated dynamically, so changes take effect immediately based on what’s in the customer’s cart.
Yes, you can combine conditions and use the logic operator ANY or ALL depending on how strict you want the rule to be. This is helpful when your store sells bundles or kits that require different handling options depending on product combinations. It allows you to build very precise rules without adding unnecessary complexity to your shipping setup.
Absolutely – this is one of the most common reasons stores use product-based visibility rules. If an item is shipped from a different warehouse or fulfilled externally, you can hide Local Pickup to avoid customer confusion. This helps make sure customers only see shipping methods that realistically apply to their order.
Yes, you can apply rules specifically to the Free Shipping method and hide it when the cart contains certain products. This is particularly useful for premium or oversized products that should never qualify for promotional shipping. It ensures customers always see the correct costs based on the products they’re buying.
Flexible Shipping PRO evaluates all products in the cart and applies your rules accordingly. If even one item triggers the condition, the affected method will be hidden (unless you use the ALL operator). This makes the system predictable and prevents customers from selecting unsuitable shipping methods in mixed orders.
Hi,
Is it possible to add a percentage rule cost? For example. 20% of the total fee.
Hi Anjan, there is a way how you can add the percentage to the total cost. Please see this screenshot with the rule – https://imgur.com/MqojpfG. This rule will add 20% extra charge based on the total fee. You can find in our documentation an article about it – https://octolize.com/docs/article/flexible-shipping-pro-shipping-cost-as-a-percentage-of-orders-value/.
This is really helpful. I am just wondering if there is a way to hide the shipping method if more than one category of products are in the basket – so that the shipping method is just for one product category only. It seems we would need to manually specify each other product category rather than just saying “not X category”
Hi Tom,
Yes, it is possible to hide the shipping method when there are more product categories. Indeed, you would need to specify manually each product category – see here: https://monosnap.com/file/ATFP3YHeMxyZAkOBpztUtWQHFdGt4K
Optionally, you could create a shipping method with a rule corresponding to only one product category, see here:
https://monosnap.com/file/QU0bmJfq6wxWDBvcShrER32BvuE5Ez
In this case, if there will be a product category other than specified in the rules, the shipping method won’t be used.
Kind regards,
Mateusz