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

Stefan June 17, 2016 at 12:27 am

I’m curious if this is what I need.

I want to be able to apply shipping per item.

Ex: a person adds two pairs of free socks to their cart and gets charged twice for shipping, let’s say $3.95 x 2 for a total of $7.90.

Is this possible?

jeroen June 17, 2016 at 10:10 am

Yep, using the extra WAS Advanced Pricing extension you can setup cost per item (if you want different cost per item, if its the same you can use the default ‘cost per item’ option)


Stefan June 17, 2016 at 3:42 pm

Awesome – purchasing right now! Thanks for the quick response Jeroen!

Stefan June 17, 2016 at 8:56 pm

Purchased earlier today (with support) and requested the extension. Thanks for the help!

Jeroen June 18, 2016 at 11:09 pm

Great 🙂

You should’ve received it earlier (if not, please check your spam folder, happens sometimes 😉

Stefan June 19, 2016 at 4:21 am

Hey Jeroen,

I didn’t receive it 🙁 Checked both email addresses and both spam folders. Didn’t get anything. Can you try and resend it to stefan.lenassi@gmail.com?

Thanks man.

Jeroen June 19, 2016 at 12:32 pm

Just send it over again 🙂

Stefan June 19, 2016 at 3:06 pm

I got it this time. However there was no attachment in the email!!

Not sure if this is on my end, but both of the emails before yours had attachments in them.

Let me know what you think.


Jeroen June 20, 2016 at 9:23 pm

Solved 🙂

Stefan June 26, 2016 at 10:13 pm

Love the plugin man! Super easy to use and solved ALL of my problems! Is there a way to hide shipping total until they fill out their address? Thanks man.

Jeroen June 27, 2016 at 1:06 pm

There’s a option in WC core to hide shipping till address is entered 😉

Rafael July 5, 2016 at 12:31 am

Hi Jeroen,

I´m interested in your plugin , it seems to work very well. So I have a question, is it possible to set a specific shipping for variation on product?

For example: if I have a t-shirt that has blue , yellow and black options , and I want to set a specific shipping for the option blue.

Jeroen July 5, 2016 at 1:38 pm

Hi Rafael,

You can do this by setting those products to a different shipping class assign shipping rates accordingly.
I also have a experimental version of the WAS Advanced Pricing extension available that allows you to setup variations if you’d like to try that 😉


Rafael July 5, 2016 at 6:43 pm

Hi Jeroen , how are you ?

Tks for the sort notice , I´ll buy your plugin , it will resolve my client´s problem.

Best regards,


Kate Smith July 6, 2016 at 4:12 pm

Hi Jeroen!

I purchased your plug-in and I love it! Here is my question: I have one group of products where shipping costs are calculated by the number of products purchased. And another group of products where shipping is a flat rate of $1.25 per product. The cart is now giving two options for shipping when I just want the cost of shipping added together. I cannot figure out how to correct this. Any suggestions?

Thank you!

Jeroen July 6, 2016 at 11:07 pm

Hi Kate,

You can do this using the WAS Advanced Pricing extension 


Abhinaba Chatterjee August 8, 2016 at 12:08 pm

Hi, Jeroen

Thanks for your Reply,

Is that possible for your to add this extension to this existing demo link so that we can approve this from client and purchase this.


Jeroen August 17, 2016 at 9:32 am

Hi Abhinaba,

It has been added to the Demo site 🙂


hazmi September 3, 2016 at 6:47 pm

Hello Jeroen,

I have few questions,

1. Is this plugin can be used with other shipping plugins? (ex: local shipping plugin)
2. If I have 196 list country, can this plugin handle prices for every country?

Thank you

Jeroen September 4, 2016 at 9:44 pm


1) Yes, it can be used with other plugins, it doesn’t influence those plugins or anything.
2) Yes, you can setup cost per country, you can just use the ‘country’ condition for that.


Alex September 4, 2016 at 2:59 pm

Hello Jeoren,

I wonder if you could help me with the following scenario. I have a WooCommerce shop selling paintings.

I have worked out shipping methods and classes for small, medium and large paintings but I have a problem with XL and XXL paintings.

Since the cost of those paintings vary a lot I cannot know the cost in advance. So I want the customer to be able to to place an order without any shipping method. At that stage I would call a courier company to quote me the best price. Then I would edit the order by entering the shipping method and cost and then I would sent the new invoice (with the payment link) to the customer.

How can I achieve this?

Many thanks


Jeroen September 4, 2016 at 9:43 pm

Hi Alex,

You can setup a free shipping method mentioning the shipping will be quoted later. WooCommerce allows you to add the core shipping methods to a order by default, so I think that would fit your needs.


Alex September 5, 2016 at 2:59 pm

Thank you Jeroen,

One question: what is the difference between WooCommerce Advanced Shipping and WooCommerce Extra Shipping Options?



Jeroen September 5, 2016 at 10:47 pm

The Advanced Shipping is for shipping rates and the Extra Shipping Options is to add additions to shipping rates, which can be multiple things (date picker, textbox, checkbox etc)

Gary September 6, 2016 at 7:00 pm

does this plugin works in wordpress 4.6 and woocommerce 2.6.4?

Jeroen September 7, 2016 at 12:16 am

Hi Gary,

Yes it does work with the latest versions of WordPress and WooCommerce.

Dan September 20, 2016 at 4:07 am

Hi Jeroen. How easy/difficult would it be to add the “Company” field as one of the available user conditions? (i.e. conditions are currently limited to zipcode, city, state, country & user role). Our client has some shipping rules tailored to specific companies.

Jeroen September 20, 2016 at 8:50 am

Hi Dan,

Its possible to do, the plugin is made to be easily extendable. I wrote this doc about adding additional conditions: https://aceplugins.com/doc/advanced-shipping-for-woocommerce/developer-adding-a-custom-condition/

Dan September 20, 2016 at 4:10 am

Also, our client has complicated postcode zones which we ideally want to copy-and-paste in to save A LOT time. Can postcode conditions be added in the following format (or similar)? “1234,1235,1236,1237,2000-2099,2200-2099”

Jeroen September 20, 2016 at 8:53 am

Hi Dan,

It is possible to setup a comma separated list of zipcodes, ranges of zipcodes like that aren’t a listed feature and thus limited supported, but it should be possible.

(if you have any further questions, please reach out to me as this isn’t really the best place for pre-sale questions 😉

Linda September 22, 2016 at 4:40 am

Hi –

I need to set up a shipping table as below based on order total and/or desired shipping method.

Looks like your extension will easily do the % total order shipping cost, but I need to have % or minimum $ charge. Can this be done with your extension?


>>> UPS Priority Mail Express Overnight Delivery – Free


>>> UPS Ground – $10 Flat Fee

>>> UPS 2nd Day Air – 15% of Order Total, minimum $15

>>> UPS Next Day Air – 20% of Order Total, minimum $30

Jeroen September 22, 2016 at 9:38 am

Hi Linda,

Yes you can setup these kind of shipping cost. You’d need to setup multiple rates with different conditions to ensure only the correct shipping rate / cost show up for the customer, but its all possible 🙂


Jeremy December 12, 2016 at 8:32 pm

HI Jeroen,

Is it possible to set up shipping conditions by importing a table (xls or csv, for example)?
Because we have a couple tables with shipping rates depending on weight and zip code from our shipping company. As prices are updated frequently (in general, each 3 months), it would take a considerable effort to set it up manually each time that prices change.
So, can it be done by uploading a table, or perhaps by creating a sql command to insert rates directly into the database?

Jeroen December 12, 2016 at 11:28 pm

Hi Jeremy,

As per the complexity of the conditional setup, having a import feature with csv isn’t easily possible.

Depending on the price setup, using the WAS Advanced Pricing extension  may help setting things up more quickly and easily.


Christo Slee January 26, 2017 at 11:42 pm

I am evaluating the plugin and it looks good so far. By the way Jeroen, my nephew has the same name, my last name is Slee. So I know how to pronounce your name 🙂

I have two shipping classes, LTL Freight and UPS ground.

Can I set it up so that if a customer has a LTL shipment (large items with Shipping Category LTL truck freight, cost based on weight x $) and smaller items that is Shipping Catergory UPS (different weight x $) that it combines the two and charges the LTL rate and now show the UPS rate if the any of the products are LTL.

I tested it calculated both items weight, but it shows both shipping options.

Jeroen January 27, 2017 at 9:02 am

Hi Christo,

Whether its possible to set this up depends on your more exact needs for this.
It is possible to setup weight based conditions per shipping class / category using the extra WAS Advanced Pricing extension (and then cost accordingly).

Could you reach out through this form for any further questions? The comment section here is not really the ideal place for that 😉


Nermin February 7, 2017 at 7:04 am

Question before purchasing plugin
I wonder if you could help me with the following scenario. I have custom condition and want to match this condition with new filed need to create it check out page , is this available with WooCommerce Advanced Shipping plugin or no.

Jeroen February 7, 2017 at 9:28 am

Hi Nermin,

Can you please reach out to me via the proper support form? I can’t provide support through the comments.

Thank you,

Nermin February 7, 2017 at 11:00 am

I still didn’t purchase , I want to know if my required issue available or no, then I can buy the plugin and send you a ticket .


Jeroen February 7, 2017 at 9:33 pm

Hi Nermin,

Gotcha, sorry for the confusion.

Yes, you can create a custom condition for the Advanced Shipping plugin that matches based on the custom checkout field (if setup properly). This is basically the same with what I do with my Advanced Checkout Fields plugin and the custom condition for that (for the Advanced Shipping plugin).


Nermin February 9, 2017 at 7:08 am

Hi Jeroen,
You mean that I should purchase two plugins to activate different shipping cost for different choices from custom field will create in checkout page .


I hoped to do this issue using https://codecanyon.net/item/woocommerce-advanced-shipping/8634573


Jeroen February 9, 2017 at 9:17 am

Hi Nermin,

No thats not what I mean, I just gave that as an example that it can be done and has been done.
You can still setup your own custom condition based on a custom checkout field you already have, just like I did with my other plugin.

You’d only need the Advanced Shipping plugin to setup the shipping cost.


Nermin February 9, 2017 at 9:22 am


I will buy it today But i want your help in this issue to match this condition with new filed.
Could you help me?


Jeroen February 9, 2017 at 9:52 am

Hi Nermin,

I can’t provide support on custom coding within the plugin support policy.

If you have any further questions, please reach out to me through the contact forms, this is getting into a case specific conversation that is not really good for the comment section.


Karel March 31, 2017 at 12:29 pm

Hello Jeroen,

I have multiple product classes, but i dont want to give the customer a choice of paying 1 of the classes if the customer has multiple classes in his or her cart.

Is the customer has:
Productclass1 & productclass 2 in his or her cart i want the customer to pay for both classes is this possible?

Jeroen March 31, 2017 at 2:05 pm

Hi Karel,

Yes it is possible to charge per shipping class and sum those up together when both are in the cart. This can be done using the WAS Advanced Pricing extension.


Becky April 25, 2017 at 9:50 pm

I’m struggling to find the right shipping plugin. Ok, so my question is similar to Karel above – if you have two classes of products (with basic shipping rules set up different for each) – and the customer adds the two classes of products to cart, WILL the shipping show the breakdown of the product shipping cost and then sum the shipping totals? I don’t want radio buttons on checkout for this (all other plugins are doing this). This is “already decided” shipping fees based on the class of product the customer adds to cart. I got just 2 classes. IF it can do this, I’ll buy. You mention WAS Advanced Pricing extension – is that in addition to your plugin? Cheers in advance…!

Jeroen April 26, 2017 at 8:38 am

Hi Becky,

The plugin does allow you to setup the cost according to shipping classes, but showing a breakdown is not a feature of the plugin.
You might be able to set that up though using another plugin of mine; Extra Shipping Options this would allow you to add a ‘description’ to shipping rates based on conditions, allowing you to breakdown the cost for the customer.

Hope that helps 🙂


Becky April 26, 2017 at 10:02 pm

Hi Jeroen – thanks for such a fast response! So, to clarify, I’d need to purchase all 3 plugins: Shipping advanced | WAS .. | Extra Shipping Options? or just the latter two?



Jeroen April 27, 2017 at 10:03 am

Hi Becky,

There’s only the Advanced Shipping and Extra Shipping Options, the WAS Advanced Pricing extension is free of charge with the Advanced Shipping plugin (its an extension on top of that)

– The Advanced Shipping and extension would allow you to setup the cost according to the shipping classes.
– The Extra Shipping Options plugin would be to add a description(s) to the shipping rate with the breakdown


Becky April 27, 2017 at 12:12 pm

Hi Jeroen – ok I’ve bought the advanced shipping plugin. I’ve set up my 2 classes and assigned the rules. It works nicely on calculations, but it isn’t working when combining the two classes of products “together” – sums on one of the classes only … So, the next plugin added to sort this I believe is the WAS (I apply via your form?) to separate these classes on calculation… and then the Extra Shipping Options plugin (free) to do the summary…

Thanks for the clarification, it’s critical I get this sorted out!

Dirk June 26, 2017 at 4:30 pm

Hallo Jeroen,
How can the following problem be solved?

I want to offer four shipping options.

Pos. 1. Shipping 1,50 € Germany order value up to 25 €
Pos. 2. Shipping 5,00 € Germany Order value more than 25 €
Pos. 3. Free shipping Germany over 100 €
Pos. 4. Shipping Europe and Worldwide 9.80 €

Now with an order up to 25 € after entering the RE address and LI address. Germany
The items 1-3 are displayed for selection. Pos. 3 does not have to be displayed.
If an order exceeds 25 €, item 1 should no longer be displayed.

In the case of an order abroad, after input from the RE address and LI address, e.g. The shipping option Pos.4 is displayed.
Same for an order RE address. Germany and LI Address, e.g. Switzerland the shipping option 4.

Can I solve the problem with your plugin?

Greetings Dirk

Jeroen June 26, 2017 at 7:16 pm

Hi Dirk,

I’m not sure what you mean with RE and LI addresses, but using the Advanced Shipping plugin you are able to setup shipping based on the country and order amount.
Only the shipping rates that meets the set requirements will show up for the customer as a option.

If you have any follow up questions, please contact me through my contact form 😉


Leave a Reply