WooCommerce Advanced Shipping has been released some weeks ago, but never got introduced on here. Anyone who is looking for a nice allround shipping plugin for WooCommerce, I would recommend reading further in this article as it will explain what to expect from the plugin.

WooCommerce Advanced Shipping

Lets start with a small explanation what the plugin is and does. WooCommerce Advanced Shipping allows you to create (multiple) shipping methods. Of course no-one wants all shipping methods available for every person, state, country, weight, quantity, etcetera. This is where the Conditional Logic of the plugin comes in.

Conditional Logic

That might sound difficult and hard to some people, but I’ve made it as easy as possible in the plugin. All you need to do to create a condition rule is:

1. Select an condition
2. Select an ‘Operator’
3. Select/fill in a value

Selecting a condition

woocommerce_advanced_shipping_conditionsWhen clicking the ‘condition’ drop down you will see a list of conditions to choose from. Take a look at the screenshot on the right to see the conditions that are available when you install the plugin. Any of these conditions can be used to restrict the created shipping method.

Lets use Country for example in this post.

Selecting a Operator

In the operator you will find 4 options you can select from:

  1. Equal to
  2. Not Equal to
  3. Greater or Equal to
  4. Less or Equal to

I think #1 and #2 speak for themselves, when using the ‘Equal to’ operator, the (going to select) value should equal to the customers (shipping) Country.

When choosing the ‘Not Equal to’ operator,  it will exclude the shipping method from any customer that will have set his shipping Country to the selected value.

Selecting a Value

woocommerce-advanced-shipping-valueWhen you change the ‘Condition’ drop down, you will notice that the value field will display a loading icon and soon after will display a field. This is because not every condition has the same field type and possible drop down options.

When done loading (should take less than a second on most conditions), it can display a text field or a drop down. When there’s a drop down it will contain all the possible values you can choose from. In a text field you can set your own input value.

For this example, all countries will be in the drop down if you’ve set-up your shop to sell to specific countries.

End result for this simple example; Shipping method to the Netherlands is $10,-

Combining conditions

woocommerce-advanced-shipping-combiningYou probably already noticed the ‘+’ button after a (each) condition. When clicking this button, it will automatically add a new condition row where you can set extra condition that needs to be met to allow the shipping method. This way you can combine it to set different shipping rates for e.g. weight, subtotal, quantity etcetera.

In the screenshot on the right you see thee browser screens, each with one shipping method created for shipping to the Netherlands. In the example the shipping costs are divided by the subtotal of the cart. If your order is more expensive, you will pay more shipping costs. Although there are three shipping methods, the user will only see one shipping methods with how the subtotal conditions are set-up.

Condition groups

woocommerce-advanced-shipping-condition-groupsFor those who’ve paid good attention to the screenshots might have seen the ‘Add Or group’ button below the condition. This button adds en entirely different condition group to your conditions. When working with conditions groups, all conditions in just one of the condition groups need to be met when the shipping method will be displayed. This way it will be easier to group shipping rates with the same name/costs without having to create new of shipping methods.

In the example in the right, this shipping method will display if a user has the shipping country set to; Netherlands OR France OR Germany.

Shipping method settings

Below all the conditions you’ve got a second box with some settings. In this settings area you can set the shipping title and some different shipping price options.

Shipping costs: Fill in the shipping costs you want to charge to the customer, empty or 0 is free. Only numbers are possible.
Handling fee: Extra handling fee, this is a one-time costs like shipping costs, this can be a number or a percentage (use percentage sign to set percentages. E.g. 5%).
Cost per item: Set the price that will be calculated per item, this includes quantity. This field can be a number or percentage.
Cost per weight: This fee will be multiplied by the amount of weight the customer has in his cart.
Tax status: Applies taxes if its setup in WC -> Settings -> Tax

Setting up cost per product / shipping class / category

If you have the need to setup some more advanced shipping cost, using the extra WAS Advanced Pricing extension would be a great addition. This extension allows you to add cost on a per product, shipping class and category basis. In addition to that, it also allows you to setup weight based shipping more easily and quickly from within one shipping rate.

With the WAS Advanced Pricing extension you can setup the advanced cost based on minimum and maximum quantities added to the cart, subtotal of the selected category / shipping class, or the weight of the selected category / shipping class products in the cart.

Within this extension it is also possible setup:

  • Cart and/or group subtotal percentage cost (e.g. add 10% of shipping class ‘A’ subtotal to shipping cost)
  • Setup cost per interval (e.g. add $2 shipping cost per each 10 quantity of shipping class ‘A’)
  • Easier then ever add cost per additional item in the cart


Pictures say more than a thousand words, so there are some screenshots on how you could use the plugin:

Test it yourself

You can always test the plugin out yourself via de demo website: http://was-demo.jeroensormani.com/

Hope you liked this introduction of WooCommerce Advanced Shipping. Feel free to post any questions or remarks about the plugin.

Oh, can’t forget to post where you can get this: Its available on CodeCanyon for a ridiculous low price of $17,-

Got a pre-sale or support question? Feel free to reach out to me!

Jeroen Sormani

I'm a professional WordPress plugin developer on a mission to create the best plugins for my clients. I'm specialised in developing general WordPress, WooCommerce and Easy Digital Downloads plugins.

Interested in talking about a WordPress project? Get in touch!

Follow me on Twitter

214 thoughts on “Introducing WooCommerce Advanced Shipping

Angie July 23, 2017 at 9:30 pm

I need to be able to have products that are in a certain class that have shipping according to cart total, products that have flat rate shipping according to specific products, products that have free shipping and when they are are added to the cart the shipping is totaled up and given in one amount. Is this even possible?

Jeroen July 24, 2017 at 8:33 am

Hi Angie,

Yes it is possible to setup these kinds of shipping rates using the Advanced Shipping and WAS Advanced Pricing extension.


Karl September 5, 2017 at 2:11 am


will this work alongside UPS and USPS shipping? or I will only be stuck with flat rate shipping? I want to use conditional flat rate for some products but for others I want them to use UPS/USPS. Please advise if this is possible.

Jeroen September 5, 2017 at 8:25 am

Hi Karl,

You can accomplish your scenario by splitting the cart into separate packages. This way when there are multiple products in the cart the ones you want to be shipped with U(S)PS can be shipped as such, and the ones with flat rate too.
For this scenario I’d recommend using the Advanced Shipping and Advanced Shipping Packages plugins.
With the Packages plugin you can exclude the shipping rates you don’t want for your scenario 😉


Nate Maingard September 6, 2017 at 2:46 pm

Hi, Jeroen!

I’m wanting to use Printful Print on Demand and my own CD’s on my site. The CD’s I post from South Africa/Wherever I am, and the Printful all gets sent from Printful. Is there a way for me to set it up so if there’s a CD and a Printful item in the cart, the two different shipping rates can be shown and added to the final cost?

Hope that all made sense, it’s confusing the crap outta me

Jeroen September 6, 2017 at 7:10 pm

Hi Nate,

I’m not sure how Printful works, but if you have different items / shipping cost calculated differently you can split the cart into separate packages.

Then you can setup the shipping cost for the package using the Advanced Shipping plugin if wanted.


Ric October 11, 2019 at 9:45 am

Hi Jeroen,
i’ve installed the free version. If a i buy the WooCommerce Advanced Shipping on codecanyon i must set all condition again or i can simply deactivate the free plugin and activate the payed plugin to preserve all shipping condition?

Jeroen Sormani October 11, 2019 at 10:41 am

Hi Rick,

The plugins are separate from one another, you’d have to re-create any shipping rates you have (or you can use both plugins at the same time)


m.farah November 13, 2019 at 10:47 am

Hi Jeroen,

When the customer buys multiple products can I apply free shipping on a single product without affecting the shipment fees of the entire order?

Thanks in advance

Jeroen Sormani November 13, 2019 at 2:34 pm


It depends on how your shipping cost are setup.
If you setup cost per category/shipping class for example you may be able to do this. If its live quotes you may also need the Advanced Shipping Packages plugin as well, then shipping will be calculated per created package.

m.farah November 14, 2019 at 9:29 am

Hi Jeroen, thanks for your reply.

I need to know
if I created a “Free shipping rate” with the subtotal condition is there any function in your plugin can I use to get this rate condition value?

Thank you

Jeroen Sormani November 14, 2019 at 9:51 am


There’s no such function out of the box.

Daniel Hirsch May 20, 2021 at 3:03 pm

Great plugin!
Is it possible to have a limit on the shipping cost? so if I set shipping by shipping class and I customer has many products it adds on everything to 500US shipping.
I want to have it a limit, so if more than 250$ the cost of the shipping, the shipping will be 250$ and not more.
(I am a paid customer BTW )

Jeroen Sormani May 21, 2021 at 2:18 pm

Hi Daniel,

Limiting the shipping rate is not a setting in the plugin (currently), but this can be done with a snippet; https://jeroensormani.com/putting-a-limit-minimum-on-your-shipping-cost/


Matt June 25, 2021 at 4:56 am

I’ve been using this plugin for a few years now, it’s perfect for this site, however I’ve come into a problem maybe could get some suugestions to work around or a feature that needs to be implimented.

The site has a range of products and most of the shipping has been set up via various weights and states. eg vic 0-20kg, vic 21-30kgs etc. But now I’ve got a new range of products to add and they have their own shipping class of say “jars” and trying to set up new was for them with the condition of cart countains items more and equal to 2, less and equal to 3 and contains shipping class “jars” so I can give them a shipping price of $9. However if I say have 2 jars and add in a larger item that is ussualy $44 to ship because jars is in the the shipping class for the one jared item it now comes up with two options for shipping a $9 option and a $44 option. Ideally we only want the $44 dollar option to show up so the customer isn’t getting the larger item at a cheaper shipping price but rather including the jar with the larger item calculated on weight? So sounds like having the option to have “remover cheaper value” or something


Amelia Bassett August 10, 2021 at 12:13 pm

Hi! Purchased today and still working my way around the plugin but great so far. Can you tell me how to separate zipcodes in the conditions?
Thanks so much

Jeroen Sormani August 10, 2021 at 4:16 pm

Hi Amelia,

Glad to hear find the plugin great (so far ;-). Feel free to reach out through the support channel here if you need assistance; https://jeroensormani.com/woocommerce-advanced-shipping/support/


Cristian Gardi February 7, 2022 at 7:17 pm

Hi, I need to set the shipping costs based on the place of destination and the total weight, and I need a plugin that allows me to make this distinction in the first place:
– if in the cart there is at least one product belonging to the FROZEN category, the shipping costs will be calculated using tariff table A
– if in the cart there are no products belonging to the FROZEN category, the shipping costs will be calculated using tariff rate B

Is it possible to do this with your plugin?

Jeroen Sormani February 8, 2022 at 1:32 pm

Hi Christian,

Yes, you can setup shipping rates based on the contents of the cart and have different cost setup using the conditions / WAS Advanced Pricing extension.


Cristian Gardi February 9, 2022 at 6:08 pm

Thank you so much, Jeroen

Megan March 8, 2022 at 9:32 am

HI! Does this only work for stores that are located in the US? We’re in Canada, so …



Jeroen Sormani March 8, 2022 at 10:07 am

Hi Megan,

The plugin is not limited for any country, it works on any WooCommerce site.. If you need help with the plugin, feel free to reach out through the support channel here: https://jeroensormani.com/woocommerce-advanced-shipping/support/


Konstantinos March 10, 2022 at 6:11 pm

Hi.. i have 4 different shipping option but i want to use cash on delivery only for one of them, is it possible?
in cash on delivery tab, i have the option to choose only Any advance shipping method

Jeroen Sormani March 11, 2022 at 10:15 am


This is possible with a customization. Feel free to reach out through the support channel if you need help: https://jeroensormani.com/woocommerce-advanced-shipping/support/


Diego Burgos December 5, 2022 at 9:26 pm

Good afternoon, I need to know if I can configure the shipping value for each product depending on the city where the shipment is made and that the value increases as products are added to the cart

Jeroen Sormani December 6, 2022 at 10:27 am

Hi Diego,

It is possible to setup cost per product with the WAS Advanced Pricing extension.


Leave a Reply