Delivery by Distance is a separate plugin that prices deliveries by how far the customer is from your store (or your nearest warehouse). It works out the distance itself, with no map service and no cost, or with a free or paid map service for road distances and drive times. It also adds a Delivery to my postcode checker for product pages, a Check the pin on the map step at checkout, address suggestions, and road travel times for Smart Routing.
Install the plugin #
Delivery by Distance is its own plugin, Sales Igniter Delivery by Distance, which you install next to WooCommerce. It comes with Rentals & Bookings Regular, Pro and Ultimate at no extra cost. It needs WooCommerce 8.0 or newer, WordPress 6.6 or newer and PHP 8.1 or newer, and no map account.
- Download the Delivery by Distance zip from your account on rentalbookingsoftware.com.
- In your WordPress admin go to Plugins › Add New › Upload Plugin, choose the zip and click Install Now.
- Click Activate, then follow the checklist at the top of its settings (below).
Licence: leave the key empty and the plugin uses your Rentals & Bookings Regular, Pro or Ultimate key, so its updates arrive in Dashboard › Updates with your other Sales Igniter plugins. Its Licence tab (also listed on Rentals › Settings › Advanced › Licenses) shows whether your main licence covers it, and takes a key of its own if you have one.
Its settings are under WooCommerce › Settings › Shipping › Delivery by Distance (also WooCommerce › Delivery by Distance). A checklist at the top shows what is left: put your store on the map, add “Delivery by Distance” to a shipping zone, and download the postcode points for your country.
Distance source #

Measure with
- Own calculation: no map service, no key, no cost; nothing is sent anywhere. The distance is the straight line from the origin to the address, times the Road factor (1.00 to 2.50; driving is usually about 1.3 times the straight line). Drive time is the distance ÷ an average speed, plus fixed minutes (parking, finding the door).
- A map service: road distances and drive times from a free or paid service; own calculation stays as the fallback.
Work it out from real trips: enter at least three places you have driven to from your nearest origin (postcode, optional street, country) with the driving distance, click Work it out, and use the Suggested road factor.
Map service
- Road distances from: Geoapify, openrouteservice, LocationIQ, TomTom and HERE have free tiers with commercial use; Google bills past 10,000 a month.
- Find addresses with: the same service (when it can) or the postcode table only. If it does not answer: the next step, finally own calculation; a checkout never waits more than a few seconds.
- Keys and limits: each service’s key, a Daily cap (calls a day), today’s and this month’s use, and Test the connection. A key is never shown again after you save it.
Address points
- Look the postcode up in the postcode table first (no map-service call when it is there).
- Suggest addresses as the customer types at checkout, from the address service.
- Let the customer check the pin on a map at checkout (OpenStreetMap) and move it to their door or gate. The pin may move at most this many km from the address, so the price can’t be lowered by moving it (2 km suits most shops).
On the storefront: Show “Delivery to my postcode” on product pages that ship, priced with one of your price tables. Anywhere else, use the shortcode [sidistance_checker] or the block “Delivery to my postcode”.
Usage shows this month’s quotes, fallbacks and map-service calls, the cache (Clear the cache), the Daily digest email when quotes fell back or a service failed, and the log.
Origins #

Each delivery is measured from the nearest active origin. Your store’s address comes from WooCommerce › Settings › General; put it on the map with Find on the map (OpenStreetMap), Use the postcode point or its coordinates. Add an origin adds a warehouse or branch (name, address, a price table, Deliveries can start here). With Multi Location Inventory your delivering locations are added as origins.
Price tables #

A price table turns a distance into a delivery fee. Click Add a price table, or Edit:

- Name (only you see it) and Price by: Distance, Drive time or Whichever costs more; kilometres or miles; one way (to the customer), there and back, or delivery and collection (rentals: two round trips).
- Distance bands: each row charges its Fee Up to its distance; Per unit beyond the start adds a charge for every mile past the row’s start; Deliver days before (rentals) sends far deliveries early. Add a band.
- Limits and free delivery: Not offered beyond, a Margin for straight-line distances (%), Free on orders of, Free within, Smallest order for delivery, Lowest fee, Highest fee, and When the distance cannot be measured (charge the last band, or don’t offer delivery).
- Extra charges: a base fee, a rate per mile or per drive minute, handling once per order, a weight charge, per item and per shipping class.
- Rounding of the distance and the fee, and The table as JSON to copy a table between sites.
- Preview prices four distances; Test an address works out a real address, step by step, the way checkout would, with what the customer reads.
Then add Delivery by Distance to a WooCommerce shipping zone and pick its price table there. A delivery area of Delivery & pickup can be Priced by distance with a table too (see Delivery areas).
Postcode data #
Postcode data downloads the postcode points of a country (from the Sales Igniter mirror, checksum verified, or GeoNames), so an address can be placed without any map service. Most countries take under a minute; Refresh monthly keeps them current.
The checker on product pages #

The visitor types a postcode and sees, for example, “Delivery to 78681: from $61.80 (about 23.4 mi). Exact price at checkout.” It uses own calculation from the postcode table: no map service is asked and nothing about the visitor is kept.
At checkout and on the order #
The shipping option shows the fee for the address; with the pin map on, Check the pin on the map shows under the delivery address. The order screen has a Delivery by distance box with the distance, the drive time, the price table and its version, and whether it was delivered a day before.
Road times for Smart Routing #
With a map service set here, Smart Routing can plan with road travel times (Travel times: By road in its planner settings). Every leg is asked in blocks of 10 x 10 and kept in the cache.
