ConicPlex

Start Your Project

Flat design illustration of a purple location pin inside a dashed radius circle, overlapping a teal delivery zone shape, representing WooCommerce distance-based delivery restrictions

On this Page

How to Restrict WooCommerce Shipping by Distance from Your Store (3 Plugins Compared)

WooCommerce shipping zones only match country, state, or zip. Here are 3 real plugins that restrict or price WooCommerce shipping by actual distance, city, or a drawn delivery boundary.

Husen Memon

October 13, 2026

WooCommerce’s built-in shipping zones only match a customer’s country, state, or postal code. If your real delivery area is a circle around your shop, a specific cluster of neighborhoods, or a boundary you could draw on a map but not describe in zip codes, the default zone system cannot express that. This post compares three real plugins that restrict WooCommerce shipping by distance from your store in three different ways: WooReer calculates and prices (or cuts off) shipping using actual driving distance from a mapping API, Cities Shipping Zones for WooCommerce lets you target named cities directly, and Shipping Zones by Drawing lets you draw the exact boundary on a map. If you want a straightforward radius cutoff backed by real distance math, start with WooReer.

Plugin Best for Price Last updated
WooReer Pricing or capping shipping by real driving distance Free May 20, 2026
Cities Shipping Zones for WooCommerce Targeting delivery by a specific list of cities Free August 23, 2026
Shipping Zones by Drawing for WooCommerce Drawing an exact delivery boundary on a map Free, Pro from $39/year August 12, 2026

WooReer

WooReer (its WordPress.org slug is still wcsdm, a holdover from its old name, WooCommerce Shipping Distance Matrix) calculates shipping rates based on the actual road distance between your store and the customer’s address. It does not guess from zip code proximity. It calls a routing API, Google Maps Routes API, Mapbox Matrix API, DistanceMatrix.ai, Geoapify, or HERE Routing API, your choice, gets a real driving distance, and runs it through rate rules you define per shipping zone.

  • Price: Free (open source, donation-supported)
  • Requires: WordPress 6.4+, WooCommerce 8.8+, PHP 7.4+
  • Last updated: May 20, 2026

What sets WooReer apart from the other two plugins here is that it does math, not just matching. You can set progressive or flat rates by distance band, add surcharges or discounts by percentage or fixed amount, cap costs with a minimum and maximum, and restrict travel mode to driving, walking, or bicycling, each with its own routing restrictions like avoiding tolls or highways. You can also block orders outright once a customer is too far away, which is the closest thing to a true delivery radius cutoff in this comparison. The calculated distance shows up on the cart and checkout page, so customers see why they are being charged what they are charged.

Setup starts like any plugin: search “WooReer” under Plugins > Add New, install, activate. The part that takes real effort is after that. You need your own API key from whichever provider you pick, which means creating an account with Google, Mapbox, or one of the others and, in most cases, attaching a billing method even if you stay under the free tier. Once the key is in place, you configure rate rules per WooCommerce shipping zone the same way you would any other shipping method. The plugin itself is free and actively maintained, but the ongoing dependency on a third-party API, and the account setup that comes with it, is the real cost. If you run a flower, food, or beverage delivery business where distance-based pricing actually changes your margins, that setup is worth it. If you just want a flat local-delivery fee, it is more plugin than you need.

Cities Shipping Zones for WooCommerce

Cities Shipping Zones for WooCommerce takes a completely different approach. Instead of calculating distance, it turns WooCommerce’s built-in state dropdown field into a city dropdown for the countries you choose. You then build a shipping zone the normal WooCommerce way, except the “state” you are selecting is actually a city.

  • Price: Free
  • Requires: WordPress 5.2+, WooCommerce 3.4+, PHP 7.0+
  • Last updated: August 23, 2026

This is the right tool when your actual delivery area is not a clean circle. A lot of local businesses deliver to a specific list of towns they know by name, not a mathematically perfect radius, because of traffic patterns, existing driver routes, or just which neighborhoods they have historically served. Cities Shipping Zones lets you encode that list directly rather than approximating it with distance math or a pile of postal code wildcards. It also adds a bulk-select tool for adding many cities to a zone at once, a sales-by-city report under WooCommerce Reports, and a shortcode ([csz_cities]) that shows customers a shipping calculator by city before they reach checkout.

Setup is genuinely simple: install the plugin, pick the countries you want it active on in the plugin’s own settings, update your store’s general location in WooCommerce settings, then build a shipping zone under WooCommerce > Settings > Shipping using the now-city-based location field, and drag that zone to the top of your zone list so WooCommerce checks it first. The honest limitation is that it does not support the WooCommerce block-based checkout yet, its own FAQ says so directly, so if your site runs the newer Cart and Checkout blocks instead of the classic shortcode checkout, this plugin will not show the field correctly. It also will not catch a customer just outside your named city list even if they are technically closer than someone inside it. It is matching by name, not distance.

Shipping Zones by Drawing for WooCommerce

Shipping Zones by Drawing for WooCommerce splits the difference between the other two. Instead of calculating distance on the fly or matching a list of city names, you draw your actual delivery area directly on a map inside the WordPress admin, and the plugin turns that drawn shape into a WooCommerce shipping method.

  • Price: Free (up to 5 zones), Pro from $39/year
  • Requires: WordPress 6.0+, WooCommerce 11.0+ (blocks checkout supported), PHP 7.4+
  • Last updated: August 12, 2026

The core idea is visual precision. If your delivery area follows a river, cuts off at a highway, or excludes one neighborhood in the middle of your radius for reasons a circle or a city list can’t capture, you draw that exact shape once and reuse it. At checkout, customers pick their delivery location from a map instead of typing an address and hoping it matches a zone. The plugin also supports limiting shipping options purely by distance from your store if you don’t want to draw anything, and it’s built to work with both the classic checkout and the newer WooCommerce Cart and Checkout blocks, which is a real advantage over Cities Shipping Zones.

Setup requires your own Google Maps API key with four specific APIs enabled: Maps JavaScript, Places, Geocoding, and Directions. Once that’s configured under WooCommerce > Settings > Shipping Zones by Drawing, you draw zones under WooCommerce > Shipping Zones by Drawing, then add each drawn zone as a shipping method inside a WooCommerce shipping zone the normal way. The free version caps you at five drawn zones, which is plenty for a single store with one or two delivery tiers but tight if you’re managing several locations or a lot of fine-grained sub-areas. It’s also the newest and smallest plugin in this comparison by install count, worth knowing if you weigh community size when picking a plugin to depend on.

How to pick

  1. If you want to charge more the farther a customer is, or cut off delivery past a real driving distance, and you don’t mind setting up an API key and account with a mapping provider, use WooReer.
  2. If your delivery area is a specific, known list of towns or cities rather than a clean circle, and you’re on the classic checkout, use Cities Shipping Zones for WooCommerce.
  3. If you want customers to pick their location from an actual map, need block checkout support, or your delivery boundary follows real geography a circle can’t capture, use Shipping Zones by Drawing for WooCommerce.
  4. If none of these fit because your delivery logic also needs to touch inventory, local pickup, or a custom checkout flow, that’s a case for a custom plugin rather than stretching one of these past what it’s built for.

FAQ

Can I restrict WooCommerce shipping to only customers within a certain distance of my store?

Yes. WooReer is built specifically for this: it calculates the real driving distance to the customer’s address through a routing API and can block the order once they’re past a distance you set, rather than just charging more. The other two plugins here restrict by named city or drawn map shape instead of a calculated radius.

Do I need a Google Maps API key for distance-based WooCommerce shipping?

For WooReer, you need an API key from one provider of your choice, Google Maps, Mapbox, DistanceMatrix.ai, Geoapify, or HERE, not necessarily Google. For Shipping Zones by Drawing, Google Maps specifically is required, with the Maps JavaScript, Places, Geocoding, and Directions APIs enabled. Cities Shipping Zones for WooCommerce needs no API key at all since it works from a static city list.

What’s the difference between a shipping zone by city and a shipping zone by radius?

A city-based zone, like Cities Shipping Zones for WooCommerce builds, matches customers by name against a list you define, so it’s exact for towns you already know you serve but won’t catch an address just outside that list even if it’s geographically close. A radius or distance-based zone, like WooReer calculates, measures actual distance and catches anyone within range regardless of which town they’re in.

Does distance-based WooCommerce shipping work with the block checkout?

It depends on the plugin. Shipping Zones by Drawing for WooCommerce explicitly supports the WooCommerce Cart and Checkout blocks. Cities Shipping Zones for WooCommerce’s own FAQ states it does not yet support the blocks checkout, only the classic shortcode-based checkout page. Check your active checkout type before choosing.

Can I combine a delivery radius with a flat local delivery rate?

Yes, with WooReer. You can set a flat rate for a base distance band and a per-distance or percentage surcharge beyond it, within the same shipping zone, since the plugin’s rate rules support minimum and maximum costs alongside progressive distance pricing.

None of these three plugins are ConicPlex products, and none of ConicPlex’s own plugins touch WooCommerce shipping logic, so there’s no honest reason to force one in here. If your delivery rules end up more complex than any of these three can handle cleanly, perhaps you’re routing between multiple warehouses, or combining a delivery radius with real-time inventory by location, that’s a reasonable point to stop stretching an off-the-shelf plugin and talk to a developer instead. Our Plugin Development team builds that kind of logic directly into your site.

For more on getting WooCommerce shipping to match how your business actually operates, see our posts on what to do when there’s no WooCommerce plugin for your shipping carrier and hiding a WooCommerce shipping method by product category. If pincode-level restriction is closer to what you need than distance or drawn zones, we also cover that in restricting cash on delivery by pincode. For general WooCommerce build work beyond plugin configuration, our WooCommerce Development service covers that too.

Sources

Husen Memon is a co-founder of ConicPlex, a web development agency specializing in WordPress, Webflow, and custom software builds. Over more than 9 years and 200+ client projects, he has worked across everything from plugin development to full platform migrations, with a focus on building sites and tools that hold up under real day-to-day use, not just in a demo. He writes here about the technical decisions and tradeoffs that come up in that work.

Leave a Reply

Your email address will not be published. Required fields are marked *

Keep reading

News & Updates

A keycard access panel glowing green beside a server rack, representing a network access control security vulnerability

HPE Patches a Critical Unauthenticated Format String Flaw in ClearPass Policy Manager (CVE-2026-76753)

HPE has patched a critical, unauthenticated vulnerability in ClearPass Policy Manager, the network access control platform enterprises use to decide…

Sameer Malek

October 13, 2026

Plugins

Illustration of a shield with a checkmark and an ID card representing WooCommerce age verification restricted to a specific product category

How to Add WooCommerce Age Verification by Category

Four real plugins compared for restricting a single WooCommerce category to age verified customers, with real pricing and setup steps…

Husen Memon

October 12, 2026

News & Updates

A developer desk at night with a laptop lit by red, amber, and green ambient light and a padlock resting nearby, evoking browser security

Chrome Patches 247 Flaws, Including Four Critical Bugs Found with Claude’s Assistance

Chrome 155 patches 247 security issues, 4 of them critical, and two of the critical bugs were found by an…

Sameer Malek

October 12, 2026

WhatsApp
Husen Memon
Husen Memon
Typically replies instant