Title: RiderX Delivery Sync
Author: riderx
Published: <strong>25. Juni 2026</strong>
Last modified: 25. August 2026

---

Plugins suchen

![](https://ps.w.org/riderx-delivery-sync/assets/banner-772x250.png?rev=3586006)

![](https://ps.w.org/riderx-delivery-sync/assets/icon-256x256.png?rev=3586006)

# RiderX Delivery Sync

 Von [riderx](https://profiles.wordpress.org/riderx/)

[Herunterladen](https://downloads.wordpress.org/plugin/riderx-delivery-sync.1.0.59.zip)

 * [Details](https://de.wordpress.org/plugins/riderx-delivery-sync/#description)
 * [Rezensionen](https://de.wordpress.org/plugins/riderx-delivery-sync/#reviews)
 *  [Installation](https://de.wordpress.org/plugins/riderx-delivery-sync/#installation)
 * [Entwicklung](https://de.wordpress.org/plugins/riderx-delivery-sync/#developers)

 [Support](https://wordpress.org/support/plugin/riderx-delivery-sync/)

## Beschreibung

RiderX Delivery Sync connects your WooCommerce store to the RiderX delivery platform.
It quotes live delivery rates at checkout and dispatches paid orders to RiderX for
fulfilment, keeping order delivery status in sync.

Features:

 * Live delivery rate quotes shown as a WooCommerce shipping method (classic and
   block checkout).
 * Rate breakdown displayed in the shipping label (distance, estimated time, net
   price, VAT).
 * Automatic dispatch of orders to RiderX when payment is received.
 * Configurable restaurant / pickup location and credentials.
 * Works with WooCommerce High-Performance Order Storage (HPOS).

This plugin communicates with the RiderX delivery service to obtain rates and create
deliveries. A RiderX account and API credentials are required.

### External services

This plugin uses external services for delivery orchestration and optional admin
map visualization:

 * RiderX API (required for core functionality)
    - Service URL: https://riderx.me
    - Purpose: Request delivery rate quotes, dispatch deliveries, and read live 
      delivery status.
    - Data sent: Pickup and delivery addresses, customer phone, customer email, 
      order total, currency, item count, and optional pickup schedule.
    - Terms: https://riderx.me
 * OpenStreetMap tile service (optional, admin delivery-history maps)
    - Service URL: https://tile.openstreetmap.org
    - Purpose: Render map tiles in the plugin admin delivery history detail view.
    - Activation: Used only when „Enable external map services“ is enabled in plugin
      settings.
    - Data sent: Map tile coordinates requested by the browser while rendering the
      admin map.
    - Terms: https://operations.osmfoundation.org/policies/tiles/
 * OSRM demo routing service (optional, admin delivery-history route line)
    - Service URL: https://router.project-osrm.org
    - Purpose: Draw pickup-to-customer route geometry in the admin delivery history
      detail view.
    - Activation: Used only when „Enable external map services“ is enabled in plugin
      settings.
    - Data sent: Pickup and customer latitude/longitude coordinates.
    - Terms: https://project-osrm.org/

## Installation

 1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install it
    through the WordPress plugins screen.
 2. Activate the plugin through the „Plugins“ screen in WordPress.
 3. Go to WooCommerce settings and enter the unique Store Middleware Key issued for
    this store, your RiderX Client ID and Client Secret from the RiderX Developer Console,
    and this store’s sender contact and pickup location.
 4. Enable the RiderX delivery shipping method in your shipping zones.
 5. Copy the Inbound Webhook URL from the RiderX settings screen and register it in
    your RiderX partner panel.
 6. Paste the webhook signing secret that RiderX returns back into the Webhook Signing
    Secret field, so delivery status callbacks can be verified.

## FAQ

### Do I need a RiderX account?

Yes. You need RiderX API credentials to request rates and dispatch deliveries.

### Does it work with block checkout?

Yes. The delivery rate and its breakdown are shown in both classic and block (React)
checkout.

## Rezensionen

Zu diesem Plugin liegen noch keine Rezensionen vor.

## Mitwirkende und Entwickler

„RiderX Delivery Sync“ ist Open-Source-Software. Folgende Menschen haben an diesem
Plugin mitgewirkt:

Mitwirkende

 *   [ riderx ](https://profiles.wordpress.org/riderx/)

[Übersetze „RiderX Delivery Sync“ in deine Sprache.](https://translate.wordpress.org/projects/wp-plugins/riderx-delivery-sync)

### Interessiert an der Entwicklung?

[Durchstöbere den Code](https://plugins.trac.wordpress.org/browser/riderx-delivery-sync/),
sieh dir das [SVN-Repository](https://plugins.svn.wordpress.org/riderx-delivery-sync/)
an oder abonniere das [Entwicklungsprotokoll](https://plugins.trac.wordpress.org/log/riderx-delivery-sync/)
per [RSS](https://plugins.trac.wordpress.org/log/riderx-delivery-sync/?limit=100&mode=stop_on_copy&format=rss).

## Änderungsprotokoll

#### 1.0.59

 * Fixed orders being dispatched to RiderX regardless of which shipping method was
   actually chosen. The processing-status hook fired for every order, so one shipped
   with flat-rate to an address hundreds of kilometres outside the RiderX service
   area would still be sent to RiderX and logged as „Dispatch failed“ once RiderX(
   correctly) couldn’t handle it. Orders are now dispatched only if their shipping
   line is actually RiderX Delivery.
 * Added automatic retry for a dispatch that fails with a transient error (a bare
   connection failure, or HTTP 429/500/502/503/504). Up to two more attempts run
   within the same request a couple of seconds apart, which recovers a momentary
   edge/origin blip without any manual action. If it is still failing after that,
   one more attempt is scheduled automatically a few minutes later, up to two rounds,
   before it is left for manual resync. A non-retryable failure such as a bad request
   is not retried, since retrying broken input only wastes calls and floods the 
   order notes.

#### 1.0.58

 * Stopped quoting a delivery price before the customer has entered a street address.
   A postcode and city alone geocode to the middle of the district, so the cart 
   showed a distance and a price that had nothing to do with the real destination
   and changed once the address was completed. The RiderX rate now appears only 
   once a street line with a house number is present.
 * Other plugins‘ licence reminders and upsells are no longer rendered on the RiderX
   settings screen. WordPress, WooCommerce and this plugin’s own notices are untouched,
   and every other admin page is left exactly as before.

#### 1.0.57

 * Fixed the Preferred Delivery Time field being invisible to most customers. It
   was registered in the shipping fieldset, which WooCommerce keeps hidden unless
   the shopper ticks „Ship to a different address“, so a normal order could never
   choose a delivery time. It now sits with the order notes, where it is always 
   shown.
 * Fixed Test Middleware Connection always reporting a 404. It sent a GET to the
   rate endpoint, which only accepts POST, so a perfectly healthy service looked
   broken. It now checks /health and explains what the result means.
 * Removed the Dispatch Endpoint preview that showed api.riderx.me, a host that 
   was decommissioned and never used for dispatch. The field now shows the real 
   endpoint, derived from the Middleware Base URL.
 * The Environment switch no longer implies it changes servers. Which RiderX environment
   is used is decided by the middleware; the setting is now documented as a label.

#### 1.0.56

 * Clarified that the Store Middleware Key is unique per store and issued by the
   middleware administrator. It is not a shared environment key, Mapbox token, or
   RiderX credential.

#### 1.0.55

 * Normalizes sender phone country codes to digits only before sending them to the
   middleware and RiderX (for example, `43` instead of `+43`).

#### 1.0.54

 * Added required per-store sender contact fields (full name, email, and phone) 
   and sends them with every delivery request. WooCommerce orders no longer inherit
   middleware or kiosk sender defaults.
 * Treats missing RiderX Client ID, Client Secret, or sender contact as incomplete
   configuration so a store cannot silently dispatch under shared or placeholder
   identity.

#### 1.0.53

 * Fixed the same order being dispatched to RiderX more than once. The sync ran 
   on every transition into processing without checking whether a delivery already
   existed, so an order that went back and forth — on-hold and back, a gateway re-
   firing the status, or an admin changing it by hand — created a second delivery
   for the same order. Orders that already carry a delivery ID are now skipped, 
   and a short lock prevents two concurrent transitions from both dispatching.

#### 1.0.52

 * Added RiderX Client ID and Client Secret fields. Deliveries are now created against
   your own RiderX account, using the credentials you generate in the RiderX Developer
   Console under API credentials.
 * Renamed the „RiderX API Key“ field to „Middleware API Key“ and documented it.
   It authenticates your store to the RiderX middleware and is not a RiderX account
   credential, which was easy to confuse.
 * Consolidated the outbound request headers so every middleware call carries the
   same authentication.

#### 1.0.51

 * Fixed a regression in 1.0.50 that could silently drop delivery status updates.
   The delivery ID is only stored on the order once the dispatch request returns,
   so an early callback can arrive before the order is matchable; 1.0.50 acknowledged
   those with a 200 and RiderX never retried them, leaving the order stuck. Unmatched
   status callbacks now return 404 again so RiderX retries them.
 * Unmatched delivery.vehicle.location pings are still acknowledged with 200, since
   those are frequent, disposable, and not worth quadrupling with retries.
 * A „shipment_destroyed“ delivery no longer returns the goods to stock when it 
   cancels the order, because a destroyed parcel is never coming back. An ordinary„
   cancel“ still restocks as before.
 * Added the riderx_woo_sync_non_restocking_statuses filter to control which delivery
   statuses cancel an order without restocking.

#### 1.0.50

 * Fixed a fatal error that could take down the whole site: the shipping method 
   installer ran on plugins_loaded and dereferenced WooCommerce country data before
   WooCommerce had initialised it. It now runs on woocommerce_init.
 * Fixed orders never completing automatically: the plugin looked for a „delivered“
   delivery status, which RiderX does not send. Orders are now completed on the 
   documented „completed“ and „late_completed“ statuses („delivered“ is still accepted
   as an alias).
 * Orders are now cancelled when RiderX reports „cancel“ or „shipment_destroyed“.
 * delivery.vehicle.location events now only record the courier position instead
   of adding an order note for every periodic ping.
 * Webhooks that cannot be matched to an order are acknowledged with 200 instead
   of 404, so RiderX no longer burns its three-attempt retry budget on deliveries
   this store does not own.
 * Added the riderx_woo_sync_completed_delivery_statuses and riderx_woo_sync_failed_delivery_statuses
   filters for stores that need custom status mapping.
 * Fixed inbound status webhooks being rejected: signature verification required
   a t= timestamp component that RiderX does not send, so every genuine signed callback
   failed with a 401.
 * Signature verification now accepts the plain hex digest RiderX sends, as well
   as the sha256=, v1= and base64 digest formats, and reads the timestamp from X-
   Service-Timestamp when it is not embedded in the signature. The replay window
   is only enforced when a timestamp is actually supplied.
 * Signature verification also accepts the X-RiderX-Signature, X-Webhook-Signature
   and X-Hub-Signature-256 headers in addition to X-Service-Signature.
 * Clarified on the settings screen that the webhook signing secret comes from the
   RiderX partner panel after you register the inbound webhook URL there.
 * Fixed the Show/Hide toggle only working on the first secret field on the settings
   screen.

#### 1.0.49

 * Declared compatibility with WooCommerce High-Performance Order Storage (HPOS /
   custom order tables).
 * Declared compatibility with the WooCommerce Cart & Checkout Blocks.
 * Resolves the „incompatible with currently enabled WooCommerce features“ admin
   notice.

#### 1.0.48

 * Fixed local Docker middleware URL handling: settings now accept private IP and
   host.docker.internal base URLs.
 * Normalized middleware URL input so pasted endpoint paths like /health or /api/
   integrations/woocommerce/calculate-rate are reduced to the proper base URL.
 * Added local auto-detection fallback for middleware base URL when the field is
   left empty.

#### 1.0.47

 * Synced readme Stable tag with plugin header version (1.0.47).
 * Excluded wordpress-org-assets directory from distributable plugin ZIP.

#### 1.0.46

 * Added per-day opening schedule with multiple time ranges (example: 09:00-14:00,16:
   00-22:00).
 * Added support for same-day close/reopen windows and overnight ranges.
 * Opening-hours status now evaluates current day plus overnight spill from previous
   day.
 * Reduced noise on RiderX settings page by hiding unrelated admin notices from 
   other plugins.

#### 1.0.45

 * Added translators comments to all translatable strings with placeholders.
 * Hardened input sanitization and nonce verification in admin and checkout handlers.
 * Fixed release archive to use POSIX path separators for reliable extraction on
   all platforms.

#### 1.0.44

 * Updated readme Tested up to to WordPress 7.0 for directory compatibility checks.

#### 1.0.43

 * Updated plugin text domain to riderx-delivery-sync to match the plugin slug.
 * Replaced inline admin output with wp_add_inline_style() to comply with enqueue
   best practices.
 * Updated readme Tested up to value to WordPress 6.9.

#### 1.0.42

 * Removed UTF-8 BOM from all PHP source files to satisfy WordPress.org automated
   scanner checks.
 * Rebuilt release archive after encoding cleanup.

#### 1.0.41

 * Removed UTF-8 BOM bytes from PHP files flagged by WordPress.org automated checks.
 * Repackaged release artifact with the corrected file encoding.

#### 1.0.40

 * Renamed plugin display name to RiderX Delivery Sync to comply with WordPress.
   org naming policy.
 * Updated release packaging slug to riderx-delivery-sync.

#### 1.0.39

 * Packaging cleanup: removed markdown release notes from the distributable plugin
   ZIP.
 * Build script now excludes all .md files from release archives.

#### 1.0.38

 * Hardened inbound webhook authorization: signed requests now require a configured
   signing secret or a valid API key.
 * Added signed webhook replay-window checks using the RiderX signature timestamp.
 * Switched Leaflet admin assets to bundled local files for WordPress.org packaging
   compliance.
 * Added release packaging assets and WordPress.org submission/release guide.

#### 1.0.37

 * Inbound status webhook now understands the real RiderX delivery payload (event
   + delivery object) and resolves the WooCommerce order by stored delivery id or
   the „WooCommerce order N“ description, in addition to the legacy flat payload.
 * Added support for RiderX’s X-Service-Signature (HMAC-SHA256) webhook authentication,
   with an optional „Webhook Signing Secret“ setting to verify the signature. Signed
   RiderX requests are accepted and bound to an existing order when no secret is
   configured.
 * Webhook updates now backfill the RiderX delivery id and sender/receiver coordinates
   onto orders that were dispatched before this metadata was stored.

#### 1.0.36

 * Inbound status webhook now also reads the API key from the HTTP_AUTHORIZATION/
   REDIRECT_HTTP_AUTHORIZATION server variables, so the Authorization: Bearer header
   keeps working on Apache/FastCGI stacks that strip it.

#### 1.0.35

 * Delivery history now shows a separate, expandable detail panel per order with
   its own map.
 * Detail map draws the pickup-to-customer direction (road route with straight-line
   fallback).
 * Added real-time delivery status (current status, timeline, rider, vehicle, ETAs)
   fetched live from the RiderX API with a refresh button.

#### 1.0.34

 * Display the delivery rate breakdown directly in the shipping method label so 
   it appears in block checkout.

#### 1.0.33

 * Added delivery rate breakdown (distance, estimated time, net price, VAT) to the
   shipping rate.

## Meta

 *  Version **1.0.59**
 *  Zuletzt aktualisiert **vor 4 Wochen**
 *  Aktive Installationen **weniger als 10**
 *  WordPress-Version ** 6.5 oder höher **
 *  Getestet bis **7.0.5**
 *  PHP-Version ** 7.4 oder höher **
 *  Sprache
 * [English (US)](https://wordpress.org/plugins/riderx-delivery-sync/)
 * Schlagwörter
 * [delivery](https://de.wordpress.org/plugins/tags/delivery/)[logistics](https://de.wordpress.org/plugins/tags/logistics/)
   [shipping](https://de.wordpress.org/plugins/tags/shipping/)[woocommerce](https://de.wordpress.org/plugins/tags/woocommerce/)
 *  [Erweiterte Ansicht](https://de.wordpress.org/plugins/riderx-delivery-sync/advanced/)

## Bewertungen

Es wurden noch keine Rezensionen eingereicht.

[Deine Rezension](https://wordpress.org/support/plugin/riderx-delivery-sync/reviews/#new-post)

[Alle Rezensionen anzeigen](https://wordpress.org/support/plugin/riderx-delivery-sync/reviews/)

## Mitwirkende

 *   [ riderx ](https://profiles.wordpress.org/riderx/)

## Support

Möchtest du etwas mitteilen? Brauchst du Unterstützung?

 [Support-Forum anzeigen](https://wordpress.org/support/plugin/riderx-delivery-sync/)