Go Back to Parent Doc

Custom Delivery Statuses for WooCommerce — Delivery Manager Pro

What the free plugin tracks

The free plugin models a delivery with two flags: Out for Delivery and Delivered. Combined with the WooCommerce order status, that’s enough for a simple run — the customer timeline shows Order Placed, order-status changes, Delivery Person Assigned, Out for Delivery and Delivered.

Two settings connect those flags to WooCommerce order statuses:

  • Auto Complete Delivery — completing the order also marks it delivered.
  • Complete Order on Delivery — the driver marking it delivered also completes the order.

If that’s your whole workflow, you don’t need Pro for this. If you need “picked up”, “failed attempt”, “rescheduled” or “returned to store” — read on.

Pro’s status system

Delivery Manager Pro replaces the two checkboxes with a configurable status registry at WooCommerce → Delivery Manager → Statuses.

The eight defaults

Seeded on activation, and all editable:

StatusIconCounts asTimeline stepNotifies
Assigned👤pendingyes—
Picked Up📦activeyes—
Out for Delivery🛵activeyescustomer
Delivered✅deliveredyescustomer
Failed Attempt⚠️failednocustomer + admin
Rescheduled📅pendingnocustomer
Returned to Store↩️returnednocustomer + admin
Delivery Cancelled⛔cancelledno—

What each status holds

SettingWhat it controls
Label & descriptionThe label used everywhere, plus a customer-facing description shown on the timeline and tracking page.
IconAn emoji (or any short string) shown on badges and the timeline.
ColourThe badge and timeline colour.
Counts asThe group the status belongs to: pending, active, delivered, failed, returned or cancelled. This drives the driver’s tabs, capacity counting, the dispatch board and the reports — so a custom status behaves correctly everywhere.
Timeline stepWhether the status is part of the customer’s progress path. Turn it off for exceptions (failed, rescheduled…) so they appear only when they actually happen.
Email customer / Email adminWhether reaching this status sends a notification. See Notifications.
Set order statusOptionally move the WooCommerce order to a given status when this delivery status is reached — e.g. Delivered → Completed. This generalises the free “Complete Order on Delivery” option.

Drag rows to reorder them; the order is the customer’s progress path. Use + Add status for your own (for example, At the depot or Awaiting pickup), and Delete for ones you don’t use — except assigned, out_for_delivery and delivered, which are protected because the free plugin’s compatibility layer depends on them.

Changing status

WhoWhere
Admin/shop managerThe Delivery status dropdown in the order metabox (with an optional status note), or the orders-list column.
Delivery personThe status dialog on their My Account delivery view. They can pick any status except Assigned and cancellations.
AutomaticallyA status whose Set order status is configured, the Auto Complete Delivery setting when an order is completed, and the delivery-cancelled sync when an order is cancelled.
Programmaticallydmanp_set_status( $order, 'out_for_delivery', $args ) — see the Developer Reference.

Every change is written to the delivery log with the actor, the timestamp, the note and (if enabled) the location — and fires the dmanp_status_changed action so add-ons can react.

The failed-attempt flow

Marking a delivery Failed Attempt:

  • increments the order’s attempt counter, shown in the metabox;
  • requires a note from the driver if Require a note for failed/returned deliveries is on (it is by default);
  • emails the customer with the Delivery failed email and the store with the admin alert;
  • leaves the order assigned, so the driver can retry or you can mark it Rescheduled.

Backwards compatibility

Pro keeps the free plugin’s _dman_is_out_for_delivery and _dman_is_delivered order meta in sync with its own status at all times. That means:

  • Free templates, the free deliveries query, and any third-party code reading those flags keep working while Pro is active;
  • Orders that pre-date Pro have no Pro status of their own, so their status is derived from the free flags, and they render correctly in the Pro timeline and reports;
  • Deactivating Pro leaves every order in a correct free-plugin state.

Related

Shopping Cart
  • Your cart is empty.