Skip to main content

Voice Messages in WordPress Chat: How the Add-On Works

· 6 min read
Creator of Better Messages

Voice messages live in the same gap that face-to-face conversation fills and text messaging cannot: tone, hesitation, the half-sentence that becomes the answer. They are the right tool when typing is slow (mobile, on the move), the question is complex (easier to ramble than to draft), or the relationship is personal (a coach to a client, a parent in a parent-teacher chat). WhatsApp, Telegram, and Signal made voice notes a default expectation; community sites and marketplaces built on WordPress increasingly do too.

Better Messages supports voice messages through a separate add-on plugin — Better Messages – Voice Messages — that works on both the free (AJAX) and WebSocket versions of Better Messages. This post covers how the add-on works, what changed in its 2025 rewrite, and the trade-offs versus typing.

How voice messages work in the messenger

Once the Voice Messages add-on is installed, every conversation composer in Better Messages gets a microphone button next to the send action. The recorder UX is the modern shape users now expect:

  • Tap the microphone to start recording. A live waveform appears.
  • Tap again to stop. A preview shows duration; tap Send to send, or X to discard.
  • The sent message renders as a play-button + waveform + duration; tap to play.
  • Playback shows the current position; the next voice message in the thread auto-plays when the current one finishes.
  • A separate mobile-optimized layout uses a hold-to-record gesture for one-handed use.

Recipients see voice messages inline in the conversation, alongside text and file attachments. No external player, no download step.

Both versions of Better Messages support voice messages

Voice Messages is a separate add-on plugin, not a tier-gated feature. It works on both the free (AJAX) version and the WebSocket version of Better Messages — install the add-on and the microphone button shows up.

The WebSocket version improves the experience around voice messages — instant delivery means the recipient sees the message land in real time, and web push notifications can pull them into the thread — but the recording, playback, and storage itself does not require WebSocket.

What changed in 2025

The Voice Messages add-on v1.3.1 was a full rewrite of the recorder UX:

  • WebM is the primary codec. Previously voice messages were stored as MP3 via a JavaScript MP3 encoder, which was slower and produced larger files. WebM (Opus inside) is browser-native, faster to encode, and significantly smaller for the same audio quality.
  • Reworked recorder UI. The recording state, preview, and playback all share one consistent visual language — a single waveform that animates while recording and becomes the seek bar during playback.
  • Duration and position display. Sender sees the recording duration as it counts up; recipient sees the playback position scrubbing across the waveform.
  • Auto-play the next voice message. Voice messages chained in a thread auto-play in sequence, so a recipient catching up on a long thread does not have to tap each one.
  • Voice messages on new-conversation flow. v1.3.3 added the ability to record a voice message before the thread exists — start a new conversation by recording instead of typing.

End-to-end-encryption compatible

If you have the Better Messages WebSocket version with E2E enabled (see End-to-end encrypted messaging on WordPress), the Voice Messages add-on encrypts voice files the same way it encrypts text — the audio file is encrypted in the sender's browser before upload, and decrypted in the recipient's browser before playback.

This means a Better Messages site running E2E on sensitive threads can send and receive voice messages in those threads without compromising the encryption guarantee.

Where voice messages fit on a Better Messages site

Use caseVoice messages worth enabling
BuddyPress / BuddyBoss community DMsyes
Marketplace customer ↔ vendoryes (esp. mobile customers)
LMS instructor ↔ studentyes (especially for language / pronunciation courses)
Membership site cohort chatyes
WooCommerce customer supportoptional (depends on whether you want voice support tickets)
Job board candidate ↔ employeroptional (voice cover letters / replies)
Public chat roomsusually no (typing fits public discussion better)

The add-on is per-site; once installed, the microphone button appears in every conversation. Per-role gating is configurable in Better Messages permissions if you want to restrict who can send voice messages.

Installing the Voice Messages add-on

The Voice Messages add-on is a paid Better Messages extension distributed through the same Freemius account as the WebSocket license.

  1. Install Better Messages from WordPress.org and activate it. (Free or WebSocket version both work.)
  2. Open WP Admin → Better Messages → Account → Add-ons and install Better Messages – Voice Messages.
  3. Activate the add-on through the Plugins screen.
  4. The microphone button now appears in every conversation composer.

No further configuration is needed for the basic experience. Per-role gating is in Better Messages → Settings → Permissions.

Frequently asked questions

How long can a voice message be?

The default cap is 5 minutes per voice message. The cap is configurable in Settings → Voice Messages.

Where are voice files stored?

In the same uploads directory as other Better Messages file attachments, under WordPress's upload-protection layer. File access requires the recipient's authentication; direct URLs return 403 to unauthorized visitors.

Will old MP3 voice messages still play?

Yes — the player handles MP3 alongside WebM, so messages sent before the v1.3.1 codec change still work.

Can voice messages be transcribed?

Not in the core add-on. If you run the Better Messages AI add-on, an AI bot in the thread can transcribe voice messages on demand when mentioned. For automatic transcription of every voice message, a custom hook is the right way.

Does it work on iOS Safari?

Yes — WebM with Opus is supported in iOS Safari 17+. Older iOS versions fall back to MP4 / AAC.

Does it work with end-to-end encryption?

Yes — see the E2E section above. Voice files are encrypted in the browser before upload when the thread has E2E enabled.

See also

Install Better Messages from WordPress.org →