Proof of delivery (POD) is captured by the delivery person at the moment they mark an order delivered, from their phone. It requires Delivery Manager Pro.
Configuring what’s captured
WooCommerce → Delivery Manager → General → Proof of Delivery has three fields, each set to Disabled, Optional or Required (all three default to Optional):
| Field | Captured as |
|---|---|
| Photo | An image taken with the phone camera or picked from the gallery. |
| Signature | Drawn on screen with a finger, saved as a PNG. |
| Recipient name | Who actually took the parcel. |
Required means the driver cannot confirm the delivered status until that field is filled — the confirm button rejects the submission with a message. Disabled removes the field from the dialog entirely.
How the driver captures it
On their delivery view the driver taps the status button, and the confirmation dialog shows only the fields you’ve enabled: Received by, Delivery photo (with a camera button on mobile), and a Recipient signature pad with a Clear button. A note field and a Show this note to the customer checkbox sit below. Required fields are marked with an asterisk.
Where it’s stored
- Photos and signatures are uploaded into the WordPress media library and attached to the order.
- They are hidden from anyone who cannot manage WooCommerce — POD attachments are not browsable by ordinary users.
- The order keeps references to the attachments plus the recipient name in its own meta, and a
podevent is written to the delivery log.
Limits and validation: uploads are capped at 8 MB and must be an image (jpeg, png, webp, gif, heic). Signatures must be a PNG data URL and are validated before being written, so nothing but a real PNG lands on disk.
Who can see it
| Audience | Sees |
|---|---|
| Store admin / shop manager | Everything — the photo, the signature and the recipient name — in the order metabox. |
| Delivery person | The proof they captured, on the delivery they’re assigned to. |
| Customer | A summary (the recipient name) on their order page and tracking page, and only if Show to customer → Proof of delivery summary is enabled under General → Customer View. Photos and signatures are never exposed to the customer. |
Location stamps
Enable On status change → Ask the browser for the delivery person’s location and store it with the status change under General → Delivery Person View, and each status update carries the driver’s coordinates.
- The browser asks the driver for permission the first time; if they decline, the status change still goes through without coordinates.
- Coordinates are written to the delivery log and shown to the store as a plain map link.
- No Maps API key is needed, and nothing is sent to a mapping service by your server.
The delivery log
Every Pro installation keeps an append-only delivery log table — the audit trail behind the timeline and the reports. One row per event, recording the order, the delivery person at the time, the event type, the status, the note, whether the note is public, the coordinates, who triggered it (0 for system or cron actions) and when.
Event types: assigned, reassigned, unassigned, status, note, pod, eta and location.
You can read the raw log for any order in the Delivery log section of the order metabox, and export it filtered by date range and driver from Delivery Reports as CSV.