Go Back to Parent Doc

Delivery Notification Emails & Webhooks — Delivery Manager Pro

The free plugin doesn’t send delivery emails — it records everything on the order and shows it on the timeline. Delivery Manager Pro adds six WooCommerce emails and an outgoing webhook system, configured at WooCommerce → Delivery Manager → Notifications.

The emails

They are real WC_Email classes, so they appear under WooCommerce → Settings → Emails alongside your other WooCommerce emails and are enabled, worded, styled and overridden exactly the same way.

EmailSent toWhen
Delivery assignedThe delivery personAn order is assigned or reassigned to them — with the address, phone, map link and items.
Out for deliveryThe customerThe delivery status becomes Out for Delivery.
DeliveredThe customerThe order is marked delivered — including the proof-of-delivery summary if it’s public.
Delivery failedThe customerA delivery attempt fails.
Delivery status updateThe customerAny status with Email customer enabled that has no dedicated email of its own — e.g. Picked Up, Rescheduled, Returned.
Delivery alert (admin)The store adminAny status with Email admin enabled — failed attempts and returns by default.

Which statuses trigger which email is decided on the Statuses tab, via each status’s Email customer and Email admin checkboxes. The Notifications tab lists the emails with a Manage button that jumps straight to each one’s WooCommerce settings.

Placeholders

Available in every Pro email’s subject, heading, intro and additional content:

PlaceholderResolves to
{order_number}The order number
{customer_name}The delivery contact name
{delivery_address}The one-line delivery address
{delivery_person}The assigned driver’s display name
{delivery_person_phone}The driver’s phone number
{expected_date}The expected delivery date, with the slot
{time_slot}The delivery time slot
{tracking_url}The public tracking link (tokenised)
{status}The delivery status label
{note}The note attached to the status change
{site_title}Your site title

The full list is also printed in a Placeholders panel on the Notifications tab.

The delivery block in standard WooCommerce emails

WooCommerce emails → Add a “Delivery” block (status, expected date, tracking link) to the standard customer order emails is on by default. It appends the delivery status, the expected date and the tracking link to WooCommerce’s own order emails, so even customers who never open a Pro email get the delivery information.

Email templates

Both templates are overridable from your theme:

TemplateCopy to
templates/emails/delivery-notification.phpyourtheme/woocommerce/emails/delivery-notification.php
templates/emails/plain/delivery-notification.phpyourtheme/woocommerce/emails/plain/delivery-notification.php

SMS and push

Every notification also fires the dmanp_notification action with the email ID, order, recipient and context — the hook point for an SMS or push integration. Built-in Twilio support is on the roadmap.

Webhooks

Push delivery events to Zapier, Make, n8n or your own service.

SettingNotes
Endpoint URLsOne URL per line. Every enabled event is POSTed as JSON to each URL.
Signing secretOptional. Requests then carry an X-DMANP-Signature header: sha256= plus the HMAC-SHA256 of the raw body.
Eventsassigned, status_changed, delivered, failed, note_added — all enabled by default.

A Send test webhook button fires a sample payload, and Recent webhook deliveries lists the last 50 attempts with the time, event, order, URL, attempt number and result.

Delivery and retries

Each request is attempted up to 3 times, with a growing backoff between attempts, and every attempt is logged. Leave the URL field empty to switch webhooks off entirely.

Headers

HeaderValue
X-DMANP-EventThe event name
X-DMANP-SourceYour site’s home URL
X-DMANP-Signaturesha256=<hmac> — only when a signing secret is set

Payload shape

{
  "event": "delivered",
  "timestamp": "2026-09-19T14:05:11+00:00",
  "site": "https://example.com",
  "order": {
    "id": 1234,
    "number": "1234",
    "status": "completed",
    "total": "42.00",
    "currency": "USD",
    "customer": { "name": "…", "email": "…", "phone": "…" },
    "address": "…"
  },
  "delivery": {
    "status": "delivered",
    "status_label": "Delivered",
    "person": { "id": 7, "name": "…", "email": "…", "phone": "…" },
    "expected_date": "2026-09-19",
    "time_slot": "12:00 - 15:00",
    "tracking_url": "https://example.com/track/?…",
    "attempts": 0
  }
}

delivery.person is null when no driver is assigned. Extend the payload with the dmanp_webhook_payload filter and the event list with dmanp_webhook_events.

Related

Shopping Cart
  • Your cart is empty.