Block Users in WordPress Chat: User-to-User Blocking
Every messaging surface eventually deals with the same UX requirement: let members opt out of messages from specific other members, without involving an admin. WhatsApp, Signal, Telegram, Discord, Slack — all of them have a "Block this user" option in the conversation menu. Better Messages has the same: users block each other directly, the block is one-directional, and admins can control which roles are allowed to block and which roles are immune to being blocked.
How user-to-user blocking works
When user A blocks user B:
- B can no longer send messages to A.
- B can no longer start a new conversation with A.
- B can no longer see A as a recipient in the New Conversation search (depending on the visibility setting).
- A can still message B if they choose. The block is one-directional: the blocker can still reach out; the blocked user cannot.
- The block can be lifted at any time from A's profile settings.
This is the standard "block" semantic users know from every consumer messenger. The asymmetry is intentional — if both sides went silent, neither could de-escalate.
Where blocking lives
Two places members access it:
- Per-thread menu — open a conversation, the participant's actions menu has a Block option.
- Profile settings — under "Who can message me" or equivalent, members can see their block list and unblock anyone.
Admin controls
Two role-based controls in WP Admin → Better Messages → Settings → Restrictions:
Roles that cannot block
Lists roles that lose access to the block feature. Common pattern: free-tier members can block, but heavily-restricted roles (e.g. trial-only access) cannot — preventing abuse where trial users block legitimate admins.
Immune roles
Lists roles that cannot be blocked by anyone. Common pattern: administrators, support staff, and instructors are immune — members cannot block them, ensuring critical communication channels stay open.
A typical setup:
| Role | Can block? | Can be blocked? |
|---|---|---|
| Administrator | yes | no |
| Support staff | yes | no |
| Instructor | yes | no |
| Paid member | yes | yes |
| Free member | yes | yes |
| Trial / suspended | no | yes |
Block vs admin-level restrictions
There are two layers of access control in Better Messages:
- Admin-level role restrictions (this configures who can message whom site-wide; see Role-based access for WordPress chat)
- User-level blocks (this lets each member individually opt out of specific other members)
They stack — both rules apply. The admin's role matrix gates whether the pairing is possible at all; the user's block list gates whether a specific pair stays active.
How to enable
- WP Admin → Better Messages → Settings → Restrictions.
- Toggle on Allow Users to Block.
- Configure Roles that cannot block if you want to restrict the feature to specific tiers.
- Configure Immune roles for admins / staff / instructors.
Free vs WebSocket version
User blocking works on both versions:
| Feature | Free version | WebSocket version |
|---|---|---|
| User-to-user block (one-directional) | yes | yes |
| Block from per-thread menu | yes | yes |
| Block list in profile settings | yes | yes |
| Role-based control over who can block | yes | yes |
| Role-based immunity from being blocked | yes | yes |
| Real-time delivery of block-state changes | polling | instant |
Frequently asked questions
Does the blocked user see they were blocked?
No — blocked users see a generic "you cannot send messages to this user" message, not a specific "you have been blocked" notice. This is the standard pattern and reduces friction.
Can blocked users still see old messages?
Yes — historical messages stay readable on both sides. The block only affects new messages and new conversations.
Can admins force-unblock or override a block?
Admins are typically in the immune roles list (which means they cannot be blocked at all). For force-unblocking other users' blocks, a custom filter is available — talk to support.
Does blocking apply to group conversations?
User-to-user block is a 1:1 mechanism. In a group conversation, blocked users can still post — but the blocker can filter their messages via a separate UI control. For full group-level moderation, use the group chat admin tools or the AI content moderation feature.
What about reporting users to admins?
Reporting is a separate feature: members can flag specific users for admin review via the Report Messages action. See the Report Messages feature documentation.
Does this work with guest users?
Guest visibility in the block UI is configurable. The synthetic "Guests" role can be added to immune or no-block lists like any other role.
See also
- User Block feature documentation — full reference
- Role-based access for WordPress chat — admin-level access control that complements user blocks
- AI content moderation — automatic detection of harmful content
- Report Messages documentation — for reporting users to admins