Pre-Moderated Messages
Better Messages supports pre-moderation — messages from specific users or roles are held in a queue for moderator review before being delivered. Stronger than user-reporting (which is reactive), pre-moderation is proactive: bad content never reaches the recipient. Useful for sites that need extra control over new users, public chat rooms, or specific role-tiers.
What it adds#
- Hold messages for moderator review before delivery
- Per-role pre-moderation for new conversations (different policy than replies)
- Per-role pre-moderation for replies
- Email alerts to moderators when messages need review (multiple addresses supported)
- One-click approve / reject from the admin Messages Viewer
- Approved messages are delivered as if newly sent (notifications fire on approval)
How it works#
When a user sends a message and any pre-moderation condition matches them, the message is stored with a "pending" status. Recipients don't see it. Moderators see the queue in the admin Messages Viewer.
| Condition | Outcome |
|---|---|
| Sender's role is in Roles for New Conversations and this is a new thread | Held for review |
| Sender's role is in Roles for Replies and this is a reply | Held for review |
| Neither role list matches the sender | Delivered immediately |
| Moderator approves a held message | Delivered to recipient + notifications fire |
| Moderator rejects | Message deleted; sender is not notified by default |
The moderator workflow takes seconds: open the email alert, click through to the Messages Viewer, approve or reject. Multiple moderators can share the queue.
When to use pre-moderation#
| Site type | Recommended setup |
|---|---|
| New public community | First-time senders held + admin moderates first message before user can DM freely |
| Marketplace | Buyer→vendor first messages held — protects vendors from scam attempts |
| Dating site | All free-tier messages held until user verifies email + profile |
| LMS with student DMs | First message to instructor held — protects instructor time |
| Strict communities | All replies from anonymous / guest users held |
How to enable#
Navigate to WP Admin → Better Messages → Settings → Moderation.
- Enable Messages Viewer — prerequisite — the admin UI for reviewing held messages
- Enable Pre-Moderation — turn on the pre-moderation system
- Roles for New Conversations — pick roles whose new threads need approval
- Roles for Replies — pick roles whose replies need approval
- Moderation Notification Emails — addresses notified when a message is held (one per line)
The Messages Viewer is the prerequisite — enable it first, then configure pre-moderation policies below.
Frequently asked questions#
Does the sender know their message is held?#
Yes — the UI shows a "waiting for moderator review" notice on their pending message. They see it in their thread; the recipient doesn't.
How long does the moderator have to approve?#
No timeout by default — held messages stay pending indefinitely until reviewed.
Can pre-moderation be combined with the bad-words filter and AI moderation?#
Yes. The bad-words filter blocks outright at send time. The AI content moderation (WebSocket version) can flag or hold messages on a per-category / threshold basis. Pre-moderation handles the broader "held for human review" pattern on top of both.
What happens to held messages from a deleted user?#
If the user is deleted before review, the pending messages are deleted along with the rest of that user's data when Delete messages on user delete is enabled.
Are AI bot messages subject to pre-moderation?#
No — AI bot replies bypass pre-moderation since the bot's output is already controllable via the AI provider's safety settings and the AI content moderation layer.
See also#
- Report messages — reactive moderation (users flag bad content)
- Bad words filter — automatic content blocking
- AI content moderation — AI-assisted moderation (WebSocket version)
- Role-based access — restrict messaging by role