The Ultimate Guide to WooCommerce Flat rate Shipping

Flat rate shipping is the easiest shipping method to set up in WooCommerce. In this post, let’s find out how to set up flat rate shipping in WooCommerce and see how it fits to your business model.

What is flat rate shipping?

If you have sent a package via post office before, you should be familiar with flat rate shipping. As the name suggests, flat rate shipping impose an uniform shipping price on your package as long as it doesn’t exceed a certain weight or size.

For example, the shipping cost for packages less than 10 kg and 1 cubic meter is $10 per package.

The same idea applies to WooCommerce flat rate shipping.

How to add flat rate shipping in WooCommerce

By default, WooCommerce has three shipping methods

  • flat rate shipping
  • local pickup
  • free shipping

In order to use one of those method, you need to create a shipping zone first then in the zone, you can add one or more shipping methods, including flat rate.

how to add flat rate shipping to shipping zone in woocommerce

After creating the flat rate shipping method as in the above image, you can configure the rate, tax of that shipping method by clicking on the Edit link under “Flat rate”:

configure flat shipping rate and tax

As you can notice, there is a toggle button right below the Enabled title. You can enable or disable the shipping method by turn that button on or off.

Can I have multiple flat rate shipping setup?

There is no limit on number of shipping method per zone so you definitely can have multiple flat rate shipping setup, in one zone. You may wonder, why do I need multiple flat rate shipping for one zone?

One good example is you provide standard shipping at a lower rate and priority shipping at higher rate. At the cart page, customers can choose which shipping method they want to use. If they need the products to be delivered fast, they will choose the priority shipping method. Otherwise, they can choose the standard shipping method to save money on shipping.

Let’s set that up:

adding multiple flat rate shipping for one zone

Now, on the cart page, the customers will see all the shipping options available:

flat rate shipping options on cart page


How to add flat rate shipping per item using shipping classes

At this point, you should be comfortable with adding flat rate that applies to all items. What if you want to set a different shipping rate for some particular items? For example, I have a store selling computer hardware. While keyboards, mice can be shipped without much care, monitor requires special packaging and handling. I would like to charge $50 more for monitors. How can I set that up?

First we need to add a shipping class. Adding shipping class in WooCommerce is simple. Let’s go to WooCommerce->Settings->Shipping->Shipping classes and add one:

add a shipping class in woocommerce

Now, the next step would be to go the monitor and assign it the “monitor” shipping class:

assign shipping class to product

Finally, let’s configure the shipping rate for “monitor” shipping class in our shipping methods.

Let’s go to WooCommerce->Settings->Shipping->Shipping zones and edit our zones. Let edit all the enabled flat rate shipping method in that zone and add the additional fee accordingly:

add shipping cost to shipping class

Now if I go to the cart, I can see that the shipping cost is higher:

shipping cost updated after using shipping classes

If you remember, the standard shipping was $10 and the priority shipping was $30. Since we added $30 for the “monitor” shipping class, the shipping cost updated accordingly.

WooCommerce flat rate shipping by quantity

If you notice that we have 2 items in cart here. The shipping cost for the “monitor” only calculated once. What if you want to charge the additional shipping cost PER ITEM?

That’s easy, let’s go back to our shipping methods and edit each of them then enter this:

using formula to calculate flat rate shipping cost

Now, if I go to the cart page, surely I’ll see the shipping cost is calculated for all items in cart:

cart udpated after using formula

Hide flat rate shipping if free shipping is enabled

You may want to reward the customers by offering free shipping to all order exceeds $300. In this case, you also want to hide other flat rate shipping methods. What can you do to achieve this?

You’ll need to enter some code. Don’t worry, it won’t be hard.

First thing first, you need to create a child theme if you haven’t got one. Why do you need a child theme? How to create one? Find all the answers here

Now you have your child theme ready. Let’s go to its functions.php file and paste the following code:


function bc_hide_shipping_when_free_is_available( $rates ) {
  $free = array();
  foreach ( $rates as $rate_id => $rate ) {
    if ( 'free_shipping' === $rate->method_id ) {
      $free[ $rate_id ] = $rate;
  return ! empty( $free ) ? $free : $rates;
add_filter( 'woocommerce_package_rates', 'bc_hide_shipping_when_free_is_available', 100 );

add code to functions.php to hide other shipping methods when free shipping available

Click on update file and let’s go to the cart page, you’ll see that if free shipping is available, all other methods are hidden:

other shipping methods hidden when free shipping available


As you can see, flat rate shipping at first seems to be rigid and hard to customize. However, when combine with shipping classes and free shipping method, you can offer very flexible shipping options for your customers. Using shipping classes enables you to set the max shipping fee for an order, set the shipping fee based on the quantity and the total of the cart.



Want One More WooCommerce Secrets?

I never spam, only quality info that benefits you!

How To Setup Woocommerce Minimum Order For Free Shipping

Free shipping is a great method to reward loyal customer. Good news is WooCommerce has some nice settings that help you enable free shipping for order that exceed a certain amount. Let’s learn how to setup WooCommerce minimum order for free shipping in this post.

Steps to setup minimum order for free shipping

Here are what we are going to do:

  1. Setup shipping zones
  2. Add free shipping method and set the minimum amount that triggers free shipping

Setup shipping zones

As you may already know, no shipping method exists outside of a shipping zone. So, your first step is to setup a shipping zone. Simply put, shipping zone is the physical range that your shipping methods cover. For example, you want to apply different shipping method, shipping fee for the US and the UK then you will need to setup a shipping zone that covers the US and the other for the UK.

Setting up shipping zones is super easy. If you need instructions setting up shipping zones, click here.

Let’s go to WooCommerce->Settings->Shipping and click on shipping zones:

all shipping zones in woocommerce

As you can see that I have setup four shipping zones.

Add free shipping method for a zone and setup the minimum amount that triggers free shipping

Now, for example, we are going to reward customers in Australia. For all order above $400, they will not have to pay for shipping fee. Let’s click on the Edit link under Australia shipping zone:

edit shipping zone

Now, you see the shipping zone screen like this:

add shipping method

Let’s click on Add shipping method, select free shipping:

add free shipping method for zone

Click on add shipping method, you will be see the shipping zone screen:

free shipping method added

Let’s click on the edit link under Free shipping method we have just added:

free shipping method settings

Here, you can put anything you like in the title. Note that your customers will see the title so make sure you don’t put anything that isn’t suitable to your customer here. In the free shipping requires… field, select “A minimum order amount”. Finally, enter 400 (or whatever number you want) in the Minimum order amount. This number is the cart total (i.e. money, not number of items).

Click on save changes and you are done.

Test free shipping on orders that meet the minimum amount

Now, let’s go to our store and buy one item. In this case, I’m going to buy a pair of shoes. Let’s go to the cart page:

free shipping inactive when the cart total is less than minimum required

As you can see, we don’t see the free shipping option since the cart total is only $54. Now, let’s update the cart to order 3 more. We will have 10 items in cart and the amount exceed $400. After updating the cart, you should see the free shipping option appears:

free shipping option available when minimum amount met

Our customers now can select that option to save the shipping cost.


As you can see, it is easy to setup free shipping for orders that meet a certain minimum amount. This is a great feature to boost customers loyalty. Shipping is a big topic in WooCommerce and there are many customizations can be done. If you need a specific shipping settings, please let me know in the comment section below. I’m always glad to help.

Want One More WooCommerce Secrets?

I never spam, only quality info that benefits you!