In this example we disable free shipping for certain items. We have set minimum order amount to $ 100 for free shipping but certain products are heavy making them costly to ship and we cannot offer free shipping for them.
There are two ways to go about this, either with separate Free shipping method or by setting Flat rate price to $ 0 when the customer is eligible for free shipping.
Method #1: Separate Free shipping method
In this example we have two shipping methods, Flat rate and Free shipping. We want to enable Free shipping when order subtotal is greater than $ 100 but there aren’t any heavy items in the cart.
- Go to WooCommerce > Settings > Shipping > Conditions
- Click Add ruleset
- Enter Title – for example, Disable free shipping for heavy items
- Enter Conditions
Subtotal – of all products – greater than or equal – 100
Products – exclude – [heavy items]
You can also use other conditions to match products, e.g. categories or product weight - Enter Actions
Enable shipping methods – Free shipping
Disable shipping methods – Flat rate - Click Save changes
Now Free shipping will become available and Flat rate will be hidden once the subtotal is over $ 100 but only if the customer doesn’t have any heavy items in the cart.
Method #2: Set Flat rate to $ 0
Another way is to set Flat rate to $ 0. This option is simpler because it doesn’t require separate Free shipping method.
- Go to WooCommerce > Settings > Shipping > Conditions
- Click Add ruleset
- Enter Title – for example, Set Flat rate to $ 0 for free shipping
- Enter Conditions
Subtotal – of all products – greater than or equal – 100
Products – exclude – [heavy items] - Enter Actions
Set shipping method price – Flat rate – 0 – $ - Click Save changes
With this ruleset Flat rate will be $ 0 when the subtotal is over $ 100 and there aren’t any heavy items.