Message Drafts
Better Messages auto-saves unsent message text as the user types and restores it the next time they open the same conversation — across page reloads, browser restarts, and (for logged-in users) different devices. Users never lose a long reply because they navigated away mid-compose.
What it adds#
- Continuous auto-save as the user types — no manual "save draft" button
- Per-conversation drafts (each thread has its own independent draft)
- Restored automatically when the user returns to the conversation
- Survives page reload, browser close, accidental navigation
- For logged-in users, drafts sync to the database so they restore on any device
- For guests, drafts persist in browser storage on the same device
How it works#
The plugin debounces draft saves — text is persisted to the server every ~2 seconds while typing stops. The save is silent (no spinner, no toast), but visible in browser DevTools as a small REST call.
| User action | Outcome |
|---|---|
| Types in the message input | Draft auto-saves after a brief pause |
| Sends the message | Draft is cleared from storage |
| Navigates away mid-compose | Draft stays in storage |
| Returns to the same conversation later | Draft text restored in the input field |
| Logs in on a different device | Draft is fetched and restored from the server |
| Closes the browser without sending | Draft survives — restored next session |
If the user starts typing in the same conversation from a second device after the first device saved a draft, the most recent draft wins (last-write semantics).
When it matters most#
| Audience | Why drafts help |
|---|---|
| Mobile-app users typing long replies | Easy to navigate away accidentally — draft prevents loss |
| Support / vendor reps composing detailed answers | Multi-paragraph replies often interrupted by other tasks |
| Multi-device users (desktop + phone) | Start a reply on phone, finish on desktop |
| Long-form announcement messages | Admin can refine content over several sessions before sending |
How to enable#
Navigate to WP Admin → Better Messages → Settings → Messaging.
- Enable Drafts — Toggle auto-save on or off
Drafts are enabled by default. Disabling clears any existing drafts and prevents new ones from being saved.
Frequently asked questions#
Does the draft include attached files?#
No — only text drafts are persisted. Files attached but not yet sent are not part of the draft. The user re-attaches if they return later.
How long are drafts kept?#
Drafts persist until the user sends the message OR explicitly clears the input. There's no time-based expiration. Old drafts in unused conversations stay indefinitely.
Can admins see other users' drafts?#
No. Drafts are private to the authoring user. No admin UI exposes them, and they're not visible through any other user's session.
What happens if a user is blocked while composing a draft?#
The draft remains, but when the user tries to send, the block is enforced and the message is rejected. The draft can be cleared manually.
Do drafts work in guest conversations?#
Yes, but drafts persist only on the same browser/device (localStorage), since guests don't have a server-side account to sync against.
See also#
- Message reactions — interact with messages
- Reply, edit, forward — message-level actions
- Pre-moderation — review messages before they land in recipient inboxes
- Auto-delete messages — message lifecycle management