Charge the right delivery fee for every order, automatically. Define zones by radius, postal code, or a shape you draw on the map, each with its own fee and rules.
Delivery Zone & Fees helps restaurants control where they deliver and how much each delivery should cost. Instead of charging one flat fee for every customer, you can create delivery areas that match your real operation.
Use radius rules, zip or postal codes, or custom map areas to define your service zones. Each zone can have its own fee, minimum order amount, and free-delivery threshold.
At checkout, RestroPress matches the customer address to the correct zone and applies the right delivery option automatically, so the customer sees a clean ordering experience and your team avoids manual fee corrections.
Use radius, postal codes, or custom map shapes to define each service area.
Add fees, minimum order values, and free-delivery thresholds for each area.
RestroPress matches the address to a zone and applies the correct fee automatically.
= Version 3.1.2(03-06-2026) =
* Fixed: Delivery schedule popup address autocomplete now rebinds after modal refresh, service switch, and dynamic popup open events.
* Improved: Frontend Google Maps loading now uses async loading while keeping the Places and Geometry libraries available.
= Version 3.1.1(02-06-2026) =
* Fixed: Fresh add-to-cart delivery prompts now open the delivery details pop-up without showing a premature error toast.
* Fixed: Frontend Google Places autocomplete now loads after the shared Maps API dependency for location-based delivery.
* Improved: Shared Google Maps API loading now supports Multilocation frontend address filtering when Delivery Fee is active.
= Version 3.1(13-05-2026) =
* Updated: Plugin version bump to 3.1
* Fixed: User app compatibility issue
* Fixed: Delivery fee validation now reuses saved zip/address data during core service-slot checks.
* Fixed: Delivery fee row now renders from the Delivery Fee extension only, preventing duplicate core/sidebar fee rows.
* Improved: AJAX cart total updates now target the listing cart summary reliably.
* Fixed: In Old RestroPress UI/UX mode, invalid delivery zip/address now keeps reopening the service modal on add and checkout actions until valid data is saved.
* Fixed: Legacy delivery-fee location field/modal handlers are now gated to Old RestroPress UI/UX mode and do not alter the default UI.
* Improved: Old UI modal close flow now succeeds after a valid zip/address entry instead of repeatedly showing validation toast loops.
= Version 3.0(23-03-2026) =
* Updated: Plugin version bump to 3.0
* Fixed: Delivery address input visibility in service popup now follows active service type, so pickup flow no longer shows delivery address fields.
* Improved: Popup delivery address row positioning now runs only for delivery mode and keeps date/time controls stable after service switch.
* Fixed: Delivery popup address block ordering now anchors before the service date row (when present), keeping date above time in combined addon flows.
* Fixed: Shared Google autocomplete now rebinds to the current popup input after dynamic modal refresh/service switch.
* Improved: Autocomplete instance reuse is now guarded to prevent stale input bindings and delayed suggestion loading.
* Fixed: Guest checkout Google address autofilter binding on dynamically rendered address input
* Added: Checkout required field autofill (street/city/postcode) from selected listing-page Google address
* Improved: Address sync compatibility by writing and reading both `delivery_location` and `delivery_address` cookies
* Improved: AJAX delivery fee response now returns normalized fee/subtotal/total/branch/location for instant cart rendering
* Fixed: Location-based validation now requires valid `delivery_latlng` instead of accepting text-only address input
* Fixed: Branch-aware location fee resolution now falls back to `rpress_chosen_location_id` when branch payload is missing
* Fixed: Zero-distance valid locations are no longer treated as invalid
* Improved: Checkout location validation now tolerates harmless formatted-address differences
* Added: Shared Google Maps API key compatibility with Multilocation (single key works across both extensions)
* Added: Branch-specific location-based delivery fee settings for Multilocation branches
* Improved: Location-based fee matching now supports branch-specific rules with global fallback
* Improved: Store origin resolution now respects selected branch coordinates when Multilocation is active
* Improved: Distance calculation now uses Google Distance Matrix meters for accurate KM/Miles conversion
* Improved: Delivery fee validation now returns explicit error flags for frontend flow control
* Fixed: In delivery-fee-only mode, invalid zip/address now shows an error and reopens the delivery popup to force correction
* Fixed: Duplicate delivery address input is hidden when both Delivery Fee and Multilocation are active
* Improved: Checkout validation now rechecks the posted delivery address/lat-lng before placing order
* Improved: Branch-aware location fee calculation on checkout validation to enforce correct branch fee rules
* Updated: Delivery Fee settings now show branch address/lat-lng details for branch-specific location fee setup
* Updated: Global location-based fee table is hidden automatically when Multilocation is active
* Fixed: Guest checkout Google Places autofilter binding on dynamically rendered address fields with retry-safe initialization
* Added: Checkout autofill hydration for street/city/postcode from selected listing-page Google address (cookie + geocode fallback)
* Improved: Shared address-cookie compatibility by syncing both `delivery_location` and `delivery_address` keys across flows
* Improved: AJAX fee response now includes normalized fee, subtotal, total, selected branch, and delivery location for instant cart sync
* Fixed: Location-based validation now requires valid delivery lat/lng instead of raw address text-only input
* Improved: Branch fallback resolution now uses `rpress_chosen_location_id` when explicit branch payload is missing
* Fixed: Zero-distance valid addresses are no longer rejected in location-based distance validation
* Fixed: Checkout purchase validation no longer fails on harmless address formatting differences between posted and cookie values
= Version 2.5.5.7(07-03-2026) =
* Fixed: Settings save flow compatibility issue causing dependency false detection and extension deactivation
* Improved: RestroPress dependency check logic for better admin stability
= Version 2.5.5.6(13-11-2025) =
* Fixed: Checkout page address validation issue
Version 2.5.5.5(23-09-2025)
* Fixed: RestroPress 3.2 version compatibility issue
Version 2.5.5.4(01-09-2025)
* Fixed: Conflict issue with multilocation extension
* Updated: Remove autofill data for street address
Version 2.5.5.3
Version 2.5.5.2
Version 2.5.5.1
Version 2.5.5
Version 2.5.4
Version 2.5.3
Version 2.5.2
Version 2.5.1
Version 2.5
Version 2.4
Version 2.3
Version 2.2
Version 2.1
Version 2.0
Version 1.6
Version 1.5
Version 1.4
Version 1.3
Version 1.2
Version 1.1
Version 1.0
Radius and distance-based zones need a Google Maps API key. Postal-code zones can work without one.
Yes. You can create multiple delivery zones with separate fees and minimum order values.
Yes. Customers outside your delivery coverage can be prevented from placing delivery orders.
The page reads the plan categories assigned to this extension and shows the included plans automatically.