WooCommerce: How to add different shipping rates per country

March 26, 2018

WooCommerce shipping ratesWooCommerce is great and is the best plugin for most WordPress e-commerce websites. However its shipping options can be quite limited.

On the face of it, WooCommerce offers a good choice of delivery and shipping options - flat rate, free shipping, international flat rate, local delivery and local pickup. That's not surprising given that it's the world's most popular e-commerce platform.

Unfortunately this isn't as good as it looks because a lot of WordPress online shops need more granular control over their shipping rates - particularly if they ship to multiple countries or regions with different postage costs.

A lot of people get around this problem by using the official Table Rate Shipping plugin from WooThemes. This does the job, but it's very expensive and over-complicated. It adds many different shipping options and is overkill if you just need to set different shipping rates depending on the customer's country or region.

Instead, I recommend a free WordPress plugin called Flat Rate per State/Country/Region for WooCommerce. This does what you need but no more. And it works well.

How to set up Flat Rate per State/Country/Region for WooCommerce

  1. Find the 'Flat Rate per State/Country/Region for WooCommerce 'plugin in the WordPress plugin repository. (Plugins > Add New in the WordPress admin for your website). Install and activate it as usual.
  2. Go to WooCommerce > Settings > Shipping in the WordPress admin. You will see that the plugin has added a new link to the right hand side of the list of shipping options: Flat Rate per State/Country/Region.
  3. Ignore all the information about which countries belong to different regions - you probably don't need this. Scroll down to the actual plugin settings and set up the plugin as required. It's pretty self-explanatory and you can hover over the question mark icons for an explanation of each option.

Note: If you use this plugin then it will control ALL your shipping options, replacing WooCommerce's built-in Flat Rate and International Flat Rate options. This means that you need to disable Flat Rate and International Flat Rate and use the 'Flat Rate per State/Country/Region' section to add ALL your postage costs, including your domestic shipping rate and the overseas shipping. If you forget to disable the other shipping options then they will appear as alternate shipping methods in the checkout.

Flat Rate per State/Country/Region for WooCommerce screenshotAn example of how to use the plugin

Although setting up the plugin is fairly self-explanatory, here's a screenshot showing how to set it up to achieve the following scenario:

  • Shipping cost of $6.95 per order for the United States only (this example assumes that the website is based in the US)
  • Shipping cost of $15.00 for Canada
  • Shipping cost of $22.50 for the rest of the world

But what about shipping to individual countries within the UK?

TheFlat Rate per State/Country/Region for WooCommerce plugin is ideal for setting separate shipping rates for each country or region. However there are times when you want to break down your shipping zones further. For example you might want to charge different postage for England, Scotland and Wales - which WooCommerce treats as a single country (United Kingdom).

Since writing this post, WooCommerce has introduced shipping zones into its core plugin. This gives extra shipping options without needing any further plugins, so it's worth experimenting with. I've written a separate post about how to charge different shipping rates for each UK country.

It's your turn

Have you used Flat Rate per State/Country/Region for WooCommerce plugin on your WordPress website? Or do you prefer another option for setting different shipping costs depending on the country? How have you changed your setup since the introduction of WooCommerce shipping zones? Please share your experiences below.


  1. Judith Shaw
    November 16, 2019 Reply

    Hi Katie, Thanks for the info - I really hope it helps. I had previously set up shipping rates to vary between the U.S., Europe and Canada for one item I sell. I had used WooCommerce’s built-in Flat Rate and International Flat Rate options and yet my orders from Europe have not charged the shipping fee (it ships free in the US.) Hopefully this plug in and your great tutorial on installing and setting will work. Having to eat those shipping costs myself is really eating into my profit in a big way.

    • EJ
      December 10, 2019 Reply

      Hi, Judith. I'm glad this is useful to you. Please let us know how it goes with the shipping costs to Europe, which hopefully are now included in the order so you'll no longer need to shoulder them. Thanks!

  2. anon person
    January 23, 2019 Reply

    You are intermixing and confusing Country with County.

    • Katie Keith
      January 24, 2019 Reply

      I have checked the article and I use the word 'Country' to indicate the country and 'Region' to indicate the county - it doesn't refer to 'County' at all because I use 'Region' for this instead. Hope that helps to clarify it.

  3. Saed Ahmed
    August 29, 2018 Reply

    Hi katie
    Is there any way i can make one country which my site locates free of shipping and others charge shipping rate

    • Katie Keith
      August 29, 2018 Reply

      Yes, you just need to create a shipping zone for your country and charge free shipping to this zone, and create other shipping zones for the other countries with paid shipping.

Please share your thoughts...

Your email address will not be published.