WooCommerce can deliver locally out of the box, but it only knows countries, states and postcodes. That works until your delivery area stops following postcode lines. This guide shows the three ways to define a local delivery area, and when each one fits.
Three ways to define where you deliver
| How it works | Good for | |
|---|---|---|
| Postcode zones (built into WooCommerce) | List postcodes, wildcards like 902* or ranges in a shipping zone | Areas that follow postcode borders |
| A radius | Everything within a straight-line distance from your shop | Compact towns, a quick start, a simple promise like “within 5 km” |
| Drawn zones | Draw the exact area on a Google map | Rivers, bridges, highways, city districts, uneven areas |
A postcode can cover the street around the corner and a village half an hour away. If that is your problem, a drawn zone or a radius fixes it. For a full comparison, see drawn zones vs postcodes.
Set up local delivery with WooCommerce postcodes
- Go to WooCommerce → Settings → Shipping and add a shipping zone, for example Local delivery.
- Under Zone regions, add your country and limit it to your postcodes.
- Add a shipping method such as Flat rate or Free shipping, and set the price.
- WooCommerce uses the first zone that matches, from top to bottom. Put the local zone above wider zones.
Use a radius or draw the delivery area
Shipping Zones by Drawing adds a shipping method where the area is a drawn zone or a radius around your shop. Only addresses inside the area can choose the method, and each method has its own price. Put all its methods in one WooCommerce zone, for example your country.
- Radius: set the shop location once and a maximum radius per method.
- Drawn zone: draw the area on the map, or import a KML polygon.
- Several prices: add one method per area, for example the city centre at $3 and the suburbs at $6.
- Checkout map: customers can place a pin or enter a Google Plus Code. In the free version the map appears when Google can’t find the address; Premium can show it always.
- Block and classic checkout: both work.
The free version on WordPress.org includes up to 5 drawn zones, radius zones and flat rates. You need a Google Maps API key.
Price local delivery by distance
Flat rates are easy to explain. If your area is large, a price by distance is fairer. Shipping Zones by Drawing Premium can charge per km or mile by driving distance, or a fixed price inside a radius plus a price per km beyond it. It can also limit a method by driving time. See shipping cost by distance.
Step by step, with screenshots (Premium): free delivery above $150 and overlapping zones with free, $5 and $10.
Let customers check before they shop
Tell customers whether you deliver before they fill a cart. Check My PostCode and Check My Address answer “do you deliver here, and what does it cost?” on any page, using the same zones. See the postcode checker guide.
Questions
Can I mix postcode zones and drawn zones?
Yes. Keep postcode zones where they fit and add Shipping Zones by Drawing methods for the rest. WooCommerce still uses the first zone that matches the address.
Does local delivery work with the WooCommerce block checkout?
Yes. Postcode zones are part of WooCommerce, and Shipping Zones by Drawing works in both the block checkout and the classic checkout.
What does it cost?
Postcode zones are included in WooCommerce. Shipping Zones by Drawing is free on WordPress.org with up to 5 drawn zones. Premium costs from $39 a year and adds unlimited zones, distance pricing, driving time limits and several shipping origins.
Next: See Shipping Zones by Drawing · Documentation · Free version