Setting up Shipping Zones
The geographic regions that you ship goods to are called Shipping Zones. These can contain multiple shipping methods and rates that apply to that region.
For example, you could create the following zones in WooCommerce:
ZONE NAME | REGION | SHIPPING METHODS |
---|---|---|
Local | California ZIP 90210 | Local pickup |
Domestic | All US states | 2 Flat rates named “standard” and “priority” |
Europe | Countries in Europe | Flat rate shipping |
You can add as many zones as you need and each zone can contain multiple shipping methods. Customers only see the methods available for their address and corresponding zone. Each customer matches 1 zone only.
Adding & managing zones ↑
To start setting up shipping zones, go to: WooCommerce > Settings > Shipping. On first visit, there is a prompt to add a new zone, and a default Rest of the World zone.
Rest of the World is used for customers who do not match any of the custom zones you add. Adding methods to this zone is completely optional, depending on your needs.
Since zones match from top to bottom, you can also exclude regions from shipping by adding a zone for that region and assigning no shipping methods to it.
Adding a new zone
1. Click the Add shipping zone button in bottom right below the table. A new row appears:
2. Enter a descriptive Zone Name, and select regions that apply to this zone. Regions can consist of:
- Countries
- States
- Continents
3. If applicable, click the Limit to specific zip/postcodes link to further narrow which customers match this zone. For example, you can set a local zone with a specific set of postcodes (one per line); a range of postcodes (e.g. 90210…99000), or use wildcards (e.g. CB23*).
In the below example we’ve created 3 zones – Local, Domestic, and North America to demonstrate how zones can be setup:
4. Save changes when done adding shipping zones.
Sorting shipping zones
Shipping zones match customer address from top to bottom — the first to match the customer address is always used. If no custom zones match, Rest of the World is used.
To sort and reorder zones:
1. Hover and click on the far left handles.
2. Drag and drop.
3. Save changes.
Editing shipping zones
To edit a shipping zone:
1. Hover over the Zone Name, and the option to Edit appears.
2. Click Edit, and Regions become available to delete, add or change.
3. Save changes.
Adding shipping methods to zones
Now that shipping zones are in place, the shipping methods must be added. To add a shipping method:
1. Click the + icon on the far right of each row.
A modal window appears with a list of shipping methods that support shipping zones:
2. Select Shipping Methods from dropdown.
3. Click Add Shipping method button to save.
Once added, you can click the shipping method title or the edit icon to configure the shipping method.

A shipping method within a zone
For more information about configuring the core shipping methods, see the following related docs:
Local Pickup | Documentation |
Flat Rate Shipping | Documentation |
Free Shipping | Documentation |
Removing shipping methods from zones ↑
To remove a shipping method from a zone, view the zone via WooCommerce > Shipping > Shipping Zones > Name of your zone, then find the method in the list and hover over it to see the list of actions you can perform:
Click remove then save changes.
Control the shipping method selected by default ↑
The default shipping method selected for customers will be the top listed, enabled shipping method in the zone which they match.
So in this screenshot example, free shipping would be chosen if the customer matched the US shipping zone.
Drag and drop to re-order shipping methods using the handles on the left, then save changes.
How zones work for customers ↑
Using these shipping zones and methods:
- In the 90210 zip code in California, I offer local pickup and free shipping.
- In the United States, I offer a domestic flat rate.
- In non-U.S. regions, I offer a different worldwide flat rate.
This is what your customers would see:
CALIFORNIAN CUSTOMER | NON-CALIFORNIAN, US CUSTOMER | INTERNATIONAL CUSTOMER |
---|---|---|
![]() |
![]() |
![]() |
Snippet: Only show free shipping if available
By default, all methods in a zone are presented to the customer. If you have conditional free shipping and want it to be the only shown method if it’s available, you can use the following snippet to hide other methods:
Shipping classes can be used to group products of similar type and used by some shipping methods, such as Flat Rate Shipping, to provide different rates to different classes of product.
For example, with shipping classes and Flat Rate Shipping, it’s possible to create different flat rate costs heavy items and envelopes. More info at Flat Rate Shipping.
Add Shipping Classes
1. Go to: WooCommerce > Settings > Shipping > Shipping Classes.
The screen lists existing classes.
2. Click the Add Shipping Class button beneath the table. A new row appears.
3. Enter a Shipping Class Name and description. Slug (unique identifier) can be left blank and auto-generated, or you can enter one.
4. Save Shipping Classes.
Edit and Delete Shipping Classes ↑
To edit or remove a shipping class:
1. Hover over Shipping Class Name. Options appear.
2. Click Edit to revise the name, slug or description. Or click Remove to delete the shipping class.
3. Save Shipping Classes.
Assign shipping classes to products
To apply these rates to a specific class of products (e.g., bulky or heavy items), you need to assign them.
1. Go to: WooCommerce > Products.
2. Select the product, and click Edit.
3. Go to Shipping, and select the Shipping Class from the dropdown.


Each product can have one shipping class.
4. Update the product to save changes.
Bulk-Edit Shipping Classes
To bulk-edit shipping classes:
1. Go to: WooCommerce > Products.
2. Select the products you want to edit by ticking boxes on the left-hand side.
3. Select Edit from the Bulk Actions dropdown, then Apply. A new screen appears.
4. Select a shipping class from the dropdown.
5. Update to save changes.
Debug Mode ↑
After making changes to shipping settings, we recommend temporarily enabling Shipping Debug Mode.
1. Go to: WooCommerce > System Status > Tools.
2. Tick the Enabled checkbox for Shipping Debug Mode.
3. Save changes.
This disables shipping caches so you see immediate results of your shipping setting changes.
4. View the shipping rates and classes to confirm changes.
5. Disable by repeating steps 1-3, except untick the box.
Flat Rate Shipping is a free shipping method in WooCommerce that allows you define a standard rate per item, per shipping class or per order.
Flat Rate Shipping works with Product Shipping Classes, adding more power and flexibility.
Setup and Configuration
To use this method it must be added to a Shipping Zone.
1. Go to: WooCommerce > Settings > Shipping.
2. Select a Shipping Zone, and click the + icon to Add Shipping Method. A modal window will display.
3. Select Flat Rate from the dropdown.
4. Click Add shipping method.
5. Click Flat Rate in the row you wish to define.
This takes you to a different screen.
6. Enter a Title that displays to customers in checkout.
7. Select Tax Status – Define whether or not tax is applied to the shipping amount.
8. Enter Cost – Applied to entire cart. Add additional costs per item to this field. See Advanced Costs below.
9. Save changes.
Advanced Costs
The Cost field allows you to charge a flat rate per item, a percentage based cost or a minimum fee.
Available placeholders:
- [qty] – Number of products in the cart
- [fee] – An additional fee. This fee has two optional arguments.
- percent – A percentage based on total order cost.
- min_fee – A minimum amount. Useful when using percentages.
Examples
10 + ( 2 * [qty] )
– A base shipping cost of $10 plus $2 for each item in the cart.20 + [fee percent="10" min_fee="4"]
– A base shipping cost of $20 plus 10% of the order total, which is at least $4.
Shipping Classes
If you have shipping classes, the interface adds a few more fields:
- There is one cost field for each shipping class.
- No Shipping Class Cost – Useful if you use the Per Class option below. Otherwise, use the Cost field.
- Calculation Type – Two options:
- Per Order – Picks the most expensive option based on shipping costs in the cart.
- Per Class – Charges shipping for each shipping class.