Skip to content
Guide

WooCommerce Shipping Zones: Local Delivery Setup

Learn how shipping zone order, ZIP matching, free-shipping conditions and checkout testing affect what customers are charged in WooCommerce.

Editorial illustration of WooCommerce shipping zones and local delivery

A customer enters an address five miles from your store and sees the nationwide shipping rate. Another customer gets free shipping even though their order is below the threshold. The problem may not be the fee itself. It may be the order in which your shipping zones are configured.

Overview of the sections covered in WooCommerce Shipping Zones: Local Delivery Setup
What this guide covers, section by section.

WooCommerce shipping zones are powerful, but the rules are easier to understand if you imagine the checkout working through a list. It starts at the top and stops at the first zone matching the customer’s address.

How a shipping zone works

A shipping zone is a geographical area with one or more methods, such as flat rate, free shipping or local pickup. A shopper is matched to one zone based on their shipping address. WooCommerce uses the first matching zone, not every eligible zone combined.

This explains why the most specific areas usually belong at the top. If a broad United States zone appears above a zone for a handful of local ZIP codes, the broad zone may capture those addresses first and prevent the local rule from taking effect.

Build zones from narrow to wide

Imagine a fictional shop with three delivery areas. The first covers a limited group of postal codes within the city. The second covers surrounding towns. The third handles the rest of the country through a carrier.

The order should be Local Core first, Nearby Metro second and Domestic Shipping after those. Each zone needs a clear region definition. A label alone does not determine which addresses match.

ZoneExample regionPossible method
Local CoreSpecific nearby ZIP codesLocal delivery flat rate
Nearby MetroSelected towns or postal codesHigher delivery flat rate
DomesticRemaining supported country regionsCarrier or standard shipping
Rest of the worldAny unmatched addressNo shipping method unless supported

These are illustrative zone names, not prescribed rates. The right charges depend on distance, labor, packaging and your business model.

Free shipping is a separate decision

Once an address matches a zone, WooCommerce determines which methods are available there. Free shipping can be configured with conditions, such as a minimum order amount, depending on the enabled method and settings.

Check whether discounts affect the minimum and whether your displayed threshold agrees with the checkout calculation. If the site promises free local delivery over $75, test a $74.99 cart and a $75.01 cart with a qualifying address. The expected behavior should be obvious.

What if some products cannot be shipped?

Shipping zones alone may not handle every product restriction. For instance, chilled drinks might require local delivery while shelf-stable products may be shipped nationwide. A site can need shipping classes, carefully chosen extensions or custom checkout logic to enforce those conditions.

Test a cart containing only restricted items, only eligible items and a mixture. Without those tests, a customer may see a method that the business cannot actually fulfill.

Use the customer address, not your assumptions

Postal codes and city names can be inconsistent. A nearby town may share a postal code pattern with a larger area. Do not rely entirely on visual distance from a map. Check a sample of real addresses at the boundaries and verify that the expected zone appears.

A practical testing table

Test caseWhat should happen
Inside local ZIPLocal zone and its rate appear
Just outside local ZIPNext eligible zone applies
Below free-shipping thresholdPaid method still available where appropriate
Above free-shipping thresholdConditional free method appears, if configured
Unsupported destinationClear message, no impossible checkout promise
Restricted productOnly permitted delivery options

Why checkout messages matter

Customers should understand the difference between local delivery, carrier shipping and pickup. If your operation delivers only on selected days, tell people near the shipping choices or checkout summary. A customer does not automatically know that a paid local delivery charge comes with a delivery schedule.

Make sure your order confirmation communicates the method the shopper actually selected. Keep customer support details available if they entered an address incorrectly.

Fix the underlying rule before adding another plugin

When a zone does not match as expected, first check region definitions and ordering. Only add a new shipping extension if you truly need behavior the core features cannot support. Each extension introduces another piece of software to update and test.

The most specific shipping rule should win

WooCommerce shipping zones are geographic matches, not labels that a customer chooses freely. A store serving a city center, surrounding suburbs and the rest of the country should place narrow matches ahead of broad catch-all coverage where the configuration requires it. Otherwise customers may receive a method that was not intended for their address.

Build a test table before changing live settings. Include an address inside each zone, one on a boundary, one outside the local delivery area and one with an invalid postal code. Check available delivery methods, rates, free-shipping thresholds and product restrictions in the actual checkout.

Test addressExpected outcome
Core local areaCorrect local delivery fee or threshold
Outer delivery areaDifferent fee if the business offers it
Outside coverageNo unauthorized local method appears
Unsupported productDelivery restrictions are enforced clearly

A free-shipping label is not a completed business rule

Define whether thresholds are calculated before or after discounts and taxes and how mixed carts should behave. A store might offer local delivery above a minimum basket value while restricting refrigerated products to selected areas. Native settings and plugins can handle different parts of the rule, but the merchant must test how they interact.

Check the official WooCommerce shipping zones documentation for current behavior. Avoid stacking multiple shipping extensions until the business knows which rule the existing configuration cannot express. A short, accurate checkout message should explain delivery eligibility without promising service outside the intended area.

Reconcile each change against real orders

After updating zones, simulate a complete checkout with each test address and confirm that tax, shipping and final total remain correct. Document the changes so staff know which area a customer belongs to and how to handle exceptions. The goal is not the maximum number of shipping zones; it is a small, predictable delivery system customers can understand.

Delivery rules and order states must agree: a paid order is not automatically shipped. The WooCommerce order status guide explains what staff should verify after checkout, while the store hosting checklist covers the infrastructure behind a working order flow.

Official sources

WooCommerce explains zone matching and ordering in its shipping zone setup documentation. See also WooCommerce order status guidance for what happens after an order is placed. Information reviewed November 2026.

Share this article

Redwan Editor, Truearo

Editor at Truearo. Focused on practical website development, software choices and business tools, with a preference for clear explanations and useful trade-offs.