Default WooCommerce shipping charges every customer the same amount regardless of what they ordered.
This works when you’re starting out, but it quickly becomes a problem as your catalog grows.
Why flat rate isn’t enough
Flat rates create two recurring problems:
- You lose money on heavy or large orders because the flat rate doesn’t cover carrier costs.
- You overcharge on small orders, which pushes customers to abandon their cart.
Conditional shipping can solve both.
Conditional shipping
For conditional shipping I mean that the fee changes automatically based on what’s in the cart.
You can implement it on your store using a free plugin I developed and a few minutes of configuration.
Three concepts to understand first
In order to use my plugin, you need to understand these simple terms:
Condition
A single rule that checks something about the cart.
For example: “Cart weight is more than 5 kg” or “Number of products is more than 10.”
Group
A collection of conditions that must ALL be true at the same time.
Think of it as an AND statement, if all conditions in the group match, the group fires.
Multiple groups
You can have several groups. If ANY group matches, its cost is applied.
Think of groups as OR statements.
When more than one group matches, the highest cost wins.
My plugin: Advanced Shipping Rules for WooCommerce
It’s free, no subscription, no account required.
Install it from WordPress.org as usual.
Your first rule
1. Install the plugin
Go to Plugins → Add New, search for Advanced Shipping Rules for WooCommerce, install and activate.
2. Open your shipping zone
Go to WooCommerce → Settings → Shipping and click on your zone.
3. Add the shipping method

Click Add Shipping Method, choose Advanced Shipping Rules for WooCommerce, confirm.
Click Edit on the new method.
4. Create a group
Click Add Group. A new block appears with an Add Condition button.
5. Set your condition
Click Add Condition. A row appears with four fields:
- Type: choose “Cart Weight”
- Operator: choose “Greater than”
- Value: type
5(for 5 kg) - Cost: type
8(for an $8 surcharge)

This means: if the cart weighs more than 5 kg, add $8 to shipping.
6. Save and test
Click Save Changes. Open your store in an incognito window, add a heavy product, and check that the surcharge appears at checkout.
Common mistakes
Products without weights set
If product weights are empty, the cart weight is always 0 and weight rules never fire.
Set weights under Products → Edit → Product Data → Shipping.
Overlapping brackets
When multiple groups match, the highest cost wins.
Design your brackets without unintended overlap.
Confusing AND with OR
Conditions inside one group = AND (all must match).
Multiple groups = OR (any can match).
What to try next
Once you’re comfortable with the basics:
- Add a second group for a different weight bracket
- Create a cart-total condition to reward large orders with lower fees
- Combine weight AND item count in a single group for bulk order surcharges
Conclusion
Conditional shipping is one of the most useful changes you can make to a WooCommerce store.
Few minutes of setup, permanent improvement to your shipping accuracy.
Download the free plugin from WordPress.org
