=== Better Messages - Chat Rooms, Group Chat, Private Messages & AI Chat Bots ===
Contributors: wordplus
Tags: BuddyPress, chat room, video chat, group chat, private message
Requires at least: 5.9.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 3.0.14
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Real-time messaging and chat rooms for WordPress ecosystem: private conversations, public and private chat rooms, video & audio calls, and more.

== Description ==

**Better Messages** is the most feature-rich **realtime private messaging system for WordPress**, with native integrations for **BuddyPress, BuddyBoss Platform, Ultimate Member, PeepSo** and any other WordPress powered websites.

Transform your WordPress site into a powerful communication platform with **private messaging**, **chat rooms**, **video and audio calls**, **group video chats**, **AI chat bots**, and **native mobile apps**.

Whether you're building a private or public community, social network, intranet, chat-rooms site, marketplace, membership site, dating platform, or creator economy site – Better Messages provides enterprise-level messaging features with an easy-to-use interface.

**Try Better Messages:**

* **[Live Demo](https://www.wordplus.org/demo.php)** — fully functional demo site
* **[Documentation & Knowledge Base](https://www.better-messages.com/docs/getting-started/about/)** — setup guides, features, FAQ
* **[All Integrations](https://www.better-messages.com/docs/category/integrations/)** — every supported plugin and theme
* **[Pricing](https://www.better-messages.com/docs/pricing/)** — free vs WebSocket version comparison
* **[Blog & Tutorials](https://www.better-messages.com/blog/)** — guides, walkthroughs, integration deep-dives

**For developers:**

* **[REST API Reference](https://www.better-messages.com/rest-api/)** — every endpoint and parameter
* **[PHP Hooks](https://www.better-messages.com/hooks/php-actions/)** — actions, filters, helper functions
* **[JavaScript Hooks](https://www.better-messages.com/hooks/js-actions/)** — frontend events and customization API
* **[Changelog](https://www.better-messages.com/changelog/)** — every release and bug fix
* **[Roadmap](https://www.better-messages.com/roadmap/)** — upcoming features and votes

**Popular use cases:**

Better Messages is widely used to power messaging for:

* **Private communities** — paid and members-only community platforms, mastermind groups, alumni networks, course cohorts, coaching circles, role-restricted messaging, group chats, AI Chat Bots for onboarding and FAQs, end-to-end encryption for sensitive conversations
* **Public communities and social networks** — open social platforms, hobby and interest communities, BuddyPress / BuddyBoss / PeepSo / FluentCommunity-powered sites, private messaging, group conversations, chat rooms, mini chat widgets that follow users across the site
* **Intranet and corporate websites** — internal employee communication, team and department channels, role-restricted access by WordPress role, file sharing, voice and video calls for remote teams, self-hosted plan for sites with data-sovereignty requirements
* **Chat rooms websites** — sites built around real-time chat rooms as the primary feature, public and private rooms, topic-based discussion, guest access for unregistered visitors, AJAX or WebSocket delivery
* **Dating and matchmaking sites** — private 1-on-1 chat, photo and video attachments, voice and video calls, profile-to-profile chat buttons on member directories, guest chat for browsing visitors, end-to-end encryption for private conversations
* **Creator economy and fan platforms** — **paid messaging** with per-message and per-call billing via [GamiPress](https://www.better-messages.com/docs/integrations/gamipress/) or [MyCRED](https://www.better-messages.com/docs/integrations/mycred/), private video calls, mass messaging to fans, always-on mini chat widgets
* **Premium and monetized DM platforms** — charge per direct message or per call with per-role pricing, balance display, role-restricted messaging, AI Content Moderation to filter spam and scam attempts
* **Coaching and mentorship platforms** — client-to-coach DMs, scheduled video calls, voice messages, file sharing, course chat rooms via LMS integrations
* **Online stores ([WooCommerce](https://www.better-messages.com/docs/integrations/woocommerce/))** — pre-sales chat on product pages, post-purchase order support, cart-context-aware messages, embedded inbox in My Account
* **Multi-vendor marketplaces and classifieds** — buyer-to-seller chat on every listing, per-listing threads, guest chat for unregistered visitors
* **Online courses (LMS)** — course chat rooms, instructor-to-student DMs, group conversations for cohort-based courses
* **Forums and Q&A communities** — Private Message link on every reply, follow-up chat for thread participants
* **Real estate and listings sites** — agent inquiry messaging, property-context chat threads, guest chat for browsing visitors
* **Live events and webinars** — event lobby chat rooms, guest access for non-registered attendees, group voice and video calls for AMAs, pinned messages with event agendas
* **Booking and appointment platforms** — guest-to-host messaging on listings and bookings, file sharing for documents, voice and video calls before check-in
* **Crypto and Web3 communities** — token-gated chat rooms via membership plugin and WordPress roles, AMA group calls, AI knowledge bots for whitepaper questions, mobile apps for on-the-go engagement

"**Better Messages**" plugin is formerly called "**BP Better Messages**".

**[Translate Better Messages to your language](https://www.wordplus.org/bm-translate/)**

**Core Messaging Features:**

* AJAX or WebSocket powered realtime conversations
* Private one-to-one conversations
* Group conversations with unlimited participants
* Chat Rooms with guest access support
* Messages for BuddyPress Groups, PeepSo Groups, Ultimate Member Groups, FluentCommunity Groups
* Subjects for conversations
* Search across all messages
* Mark messages as favorite
* Pin important messages to conversation top
* Pin favorite conversations to list top
* Filter conversations list to show only unread conversations
* Reply to specific messages
* Edit sent messages (with edit indicator)
* Delete messages
* Forward messages to other conversations
* Mute conversation notifications
* Message draft autosave with recovery

**AI & Automation:**

* AI Chat Bots powered by OpenAI, Anthropic (Claude) and Google Gemini
* AI Chat Bots in group conversations with mention-based responses
* Conversation summarization and scheduled digests with AI
* Token usage tracking with cost estimation
* Voice message transcription powered by Better Messages Cloud AI or OpenAI
* Web Search capability for AI bots
* File Search tool for AI bots
* Image generation with AI
* PDF file support for AI conversations

**Media & Content:**

* File sharing with resumable uploads and ability to protect files from direct access (images, videos, documents)
* Client-side image and video optimization for cross-browser compatibility and saving storage space (format conversion, quality control, metadata stripping)
* Photo cropping and editing before sending
* Location messages with a map picker and nearby place suggestions
* Voice messages and video messages (available as addon)
* Embedded links with thumbnails and descriptions
* oEmbed support for YouTube, Vimeo, Spotify, SoundCloud, Flickr and 20+ services
* Emoji selector
* Built-in sticker packs with role-based access and per-locale support
* GIF integration with GIPHY and Klipy providers
* Inline sticker suggestions while typing
* Markdown text formatting support

**Notifications:**

* Email notifications for unread messages (customizable templates)
* Unsubscribe link support in emails
* Sound notifications for new messages
* On-site toast notifications anywhere on your website

**Moderation & Security:**

* AI Content Moderation with two providers:
  * **Better Messages Moderation AI** — included with WebSocket license at no additional cost, no third-party API keys required. Powered by Better Messages Cloud with extended categories, custom rules, and conversation context awareness
  * **OpenAI Moderation API** — free to use, requires an OpenAI API key
* Custom moderation rules — define your own rules in plain text
* Conversation context awareness — detect patterns split across multiple messages
* Choose between "Flag Only" (recommended) or "Hold for Review" moderation actions
* Pre-Moderated Messages - review messages before delivery
* Report messages feature
* Bad words filter with customizable blacklist
* Block user feature
* Role-based access control
* User whitelist/blacklist for moderation

**Engagement Features:**

* Reactions to messages
* Mentions (@username)
* Mass messaging from WP Admin with scheduling, file attachments, and background processing
* Suggested conversations for new users

**[Mini Widgets](https://www.better-messages.com/docs/features/mini-widgets/):**

* Embed conversation entry points anywhere on your site without using shortcodes
* Five widgets: Friends, Groups, Users, AI Bots, Chat Rooms
* Two display styles: Classic Bar or Floating Bubble (with chat heads)
* Three placement surfaces: bottom bar, side panel, mobile tab bar
* Per-widget icon picker, search box, role restrictions, and "Hide Tab When Empty" toggle
* Users widget with three display modes (all / by role / hand-picked) and sorting by last activity or registration date
* Customizable order of tabs in mini widgets, side panel and mobile view

**Customization:**

* Modern, fully customizable design
* Appearance tab — repaint every part of the messenger, reshape its corners and spacing and tune dark mode, with a live preview
* Custom notification sounds
* RTL layout support
* White label solution
* Fully translatable
* Auto-delete old messages option

**Privacy & GDPR:**

* Dedicated Privacy & GDPR settings page
* All message data stored on your own server
* AI moderation (when enabled) sends message content for analysis — Better Messages Cloud does not store any data, review OpenAI's data policy if using OpenAI provider
* WordPress personal data export and erasure support (Tools → Export/Erase Personal Data)
* Suggested privacy policy text that adapts based on enabled features
* Self-hosted emoji images option — no external CDN requests
* Privacy-friendly video embeds — YouTube, Vimeo load only after user clicks
* No cookies set, no analytics or tracking scripts
* [Privacy & GDPR documentation](https://www.better-messages.com/docs/features/privacy-gdpr/)

**This is not a complete list of features** - Better Messages has many more small features and options that are not listed here. We are constantly adding new features and improvements based on user feedback.

**Compatible plugins & themes — 35+ native integrations:**

Better Messages works on **any** WordPress site out of the box. If your site already runs a community plugin, an LMS, a marketplace, or a directory, Better Messages plugs into it directly — inheriting members, profiles, groups, courses, listings, and posts so chat surfaces appear in the right places without setup.

**Community & Membership Platforms** — replaces the built-in messenger and inherits members, profiles, friends, and groups:

* [BuddyPress](https://www.better-messages.com/docs/integrations/buddypress/)
* [BuddyBoss Platform](https://www.better-messages.com/docs/integrations/buddyboss/) — including BuddyBoss Theme and ReadyLaunch
* [PeepSo](https://www.better-messages.com/docs/integrations/peepso/)
* [Ultimate Member](https://www.better-messages.com/docs/integrations/ultimate-member/)
* [FluentCommunity](https://www.better-messages.com/docs/integrations/fluentcommunity/) — including Spaces and Courses
* [SureDash](https://www.better-messages.com/docs/integrations/suredash/)
* [ProfileGrid](https://www.better-messages.com/docs/integrations/profile-grid/)
* [UsersWP](https://www.better-messages.com/docs/integrations/userswp/)
* [WP User Manager](https://www.better-messages.com/docs/integrations/wp-user-manager/)

**Learning Management Systems (LMS)** — course chat rooms, instructor messaging, and student-to-student conversations:

* [LearnDash](https://www.better-messages.com/docs/integrations/learndash/) — including Instructor Role add-on
* [LearnPress](https://www.better-messages.com/docs/integrations/learnpress/)
* [Tutor LMS](https://www.better-messages.com/docs/integrations/tutor-lms/)
* [MasterStudy LMS](https://www.better-messages.com/docs/integrations/masterstudy-lms/)
* FluentCommunity Courses

**E-commerce — WooCommerce** — pre-sales and order support chat for online stores:

* [WooCommerce](https://www.better-messages.com/docs/integrations/woocommerce/) — Contact buttons on **product**, **cart**, **checkout**, and **order** pages. Cart contents are auto-posted into the conversation as a rich message so your support agent immediately sees what the customer is looking at, order pages post a structured order context card. Plain product URLs pasted into any chat are expanded into rich product cards. Embedded inbox lives inside WooCommerce **My Account**. **HPOS-compatible**, block-theme-compatible, works with **guest checkout**. Available on **both the free and WebSocket versions** — the WebSocket version opens chats as a popup mini-widget overlay instead of navigating away.

**Marketplaces & Multi-Vendor** — buyer-to-vendor chat on top of WooCommerce, with per-vendor opt-in and contact buttons on vendor stores, product pages, and order details:

* [Dokan Marketplace](https://www.better-messages.com/docs/integrations/dokan/)
* [MultiVendorX](https://www.better-messages.com/docs/integrations/multivendorx/)
* [WCFM](https://www.better-messages.com/docs/integrations/wcfm/)
* [WC Vendors](https://www.better-messages.com/docs/integrations/wc-vendors/)

**Listings, Directories & Classifieds** — contact buttons on every listing, with per-listing threads:

* [HivePress](https://www.better-messages.com/docs/integrations/hivepress/)
* [Directorist](https://www.better-messages.com/docs/integrations/directorist/)
* [GeoDirectory](https://www.better-messages.com/docs/integrations/geodirectory/)
* [Classified Listing](https://www.better-messages.com/docs/integrations/classified-listing/)
* [Motors – Car Dealer, Classifieds & Listing](https://www.better-messages.com/docs/integrations/motors/)
* [WP Job Manager](https://www.better-messages.com/docs/integrations/wp-job-manager/)

**Real Estate Themes** — agent and inquiry messaging on property listings:

* [Houzez](https://www.better-messages.com/docs/integrations/houzez/)
* [RealHomes](https://www.better-messages.com/docs/integrations/realhomes/)

**Forums** — Private Message link on every reply:

* [wpForo](https://www.better-messages.com/docs/integrations/wpforo/)
* bbPress

**Gamification, Points & Paid Access** — charge per message or call with per-role pricing and balance display:

* [GamiPress](https://www.better-messages.com/docs/integrations/gamipress/)
* [MyCRED](https://www.better-messages.com/docs/integrations/mycred/)

**Automation & Page Builders:**

* [Uncanny Automator](https://www.better-messages.com/docs/integrations/uncanny-automator/) — triggers and actions for chat events
* [AutomatorWP](https://www.better-messages.com/docs/integrations/automatorwp/) — triggers and actions for chat events
* [Crocoblock JetEngine Profile Builder](https://www.better-messages.com/docs/integrations/jet-engine/) — profile and chat shortcodes for JetEngine listings

**Push & PWA:**

* [FluentNotify](https://www.better-messages.com/docs/integrations/fluent-notify/) — web push through your own Firebase project
* [OneSignal](https://www.better-messages.com/docs/integrations/onesignal/) — web push notifications
* [Progressify PWA](https://www.better-messages.com/docs/integrations/progressify/) — install-to-home-screen prompts on the messenger

**Universal Shortcode Builder — add chat to anything else:**

Don't see your plugin or theme in the list? Better Messages ships a visual [Shortcode Builder](https://www.better-messages.com/docs/shortcodes/better_messages_live_chat_button/) at **WP Admin → Better Messages → Shortcodes** that lets you drop a Live Chat Button onto any custom post type, directory, marketplace listing, agent profile, or page builder block — **without writing PHP**. Point it at a sample post, choose how the target user is resolved (post author, postmeta-stored user ID, or a fixed inbox), set a thread strategy and label, and copy the generated shortcode. The same shortcode then works for every post of the same shape, with automatic per-post threading and an optional in-chat banner. Paste it into Gutenberg, Elementor, Bricks, Divi, or directly into a theme template.

[Full list of integrations](https://www.better-messages.com/docs/category/integrations/)

**Feel free to report any incompatibility or request more integrations — that is very important and helps improve Better Messages!**

**WebSocket version:**

WebSocket version is a paid option, you can get license key on our website.

We use our dedicated servers to implement WebSocket communications between your site and users. Our servers are completely private and do not store or track any private data — all messages remain in your database.

**Performance & Reliability:**

* **Significantly** reduces the load on your server
* **Instant** message delivery in realtime, up to 200x faster than AJAX
* Works with any hosting including shared hosting
* No limits on concurrent connections or monthly active users

**Video & Audio Calls:**

* HD Video Calls (1-to-1)
* HD Audio Calls (1-to-1)
* Group Video Chats (up to 32 participants)
* Group Audio Chats (up to 50 participants)
* Screen Sharing in calls and group chats

**Mobile Apps:**

* iOS Mobile App (build your own branded app)
* Android Mobile App (build your own branded app)
* Push notifications for calls and messages
* VoIP notifications for incoming calls

**Realtime Features:**

* Messages Delivery Status (sent, delivered, seen)
* Typing, voice recording and file uploading activity indicators
* Online/Offline presence indicator
* User statuses (Online, Away, Do Not Disturb)
* Mini Chats - chat windows anywhere on your site
* Mini Conversations widget - list and continue recent threads from any page
* Online-only filter and online-first ordering for the Users mini widget

**Better Messages Cloud AI:**

* Automatic message translation in 1-to-1 conversations — 53 languages, auto-detection
* AI Content Moderation — 23 categories, custom rules, conversation context awareness
* Voice message transcription — 99+ languages with auto-detection
* No third-party API keys required — included with WebSocket license at no additional cost

**Security & Encryption:**

* Optional End-to-End Encryption (E2EE) — can be enabled at the website level and per conversation, messages and files encrypted in users' browsers with AES-256-GCM, server never sees plaintext
* Local browser encryption (AES256) for offline message storage
* Web Push Notifications (works even when the browser is closed)
* All data encrypted in transit, so we can't read it on our servers

**Support:**

* Priority email support
* Regular updates and new features

[Why WebSockets are a game-changer?](https://medium.com/@monica.lucarini28/is-websocket-a-game-changer-aeaef68d1fba)

**[Get WebSocket version license key](https://www.wordplus.org/downloads/bp-better-messages/) | [Terms of Use](https://www.wordplus.org/end-user-license-agreement/)**

[Languages](https://translate.wordpress.org/projects/wp-plugins/bp-better-messages/)

RTL layout is built into the plugin.

You can translate plugin to your language with LocoTranslate or [participate in plugin translation](https://translate.wordpress.org/projects/wp-plugins/bp-better-messages/).

== Frequently Asked Questions ==

= Is Better Messages free? =

Yes — install the free version from WordPress.org. It supports private and group conversations, chat rooms, file sharing, oEmbed previews, smart-batched email notifications, role-based access, guest chat, and the standard messenger feature set. The WebSocket version is paid and unlocks instant delivery, one-on-one and group voice / video calls, Better Messages Cloud AI (content moderation, message translation and voice message transcription with no API key of your own), web push, and end-to-end encryption.

= Which WordPress plugins does Better Messages integrate with? =

35+ native integrations across community platforms (BuddyPress, BuddyBoss Platform, PeepSo, Ultimate Member, FluentCommunity, SureDash, ProfileGrid, UsersWP, WP User Manager), LMS (LearnDash, LearnPress, Tutor LMS, MasterStudy LMS), e-commerce (WooCommerce — pre-sales and order support chat with contact buttons on product, cart, checkout, and order pages), multi-vendor marketplaces (Dokan, WCFM, WC Vendors, MultiVendorX), listings and directories (HivePress, Directorist, GeoDirectory, Classified Listing, Motors, WP Job Manager), real estate themes (Houzez, RealHomes), forums (wpForo, bbPress), gamification (GamiPress, MyCRED), automation (Uncanny Automator, AutomatorWP), page builders (Crocoblock JetEngine), and push / PWA (OneSignal, Progressify). If your plugin isn't listed, the built-in visual Shortcode Builder lets you add a Live Chat Button to any custom post type without writing PHP. See the [full list of integrations](https://www.better-messages.com/docs/category/integrations/).

= Does it support group conversations? =

Yes — first-class group chats with shared history, mentions, reactions, file uploads, replies, edit / delete / forward, and group voice / video calls (WebSocket version). Group chats can be auto-paired with BuddyPress / BuddyBoss / PeepSo / Ultimate Member / FluentCommunity groups, with members joining and leaving the chat in sync with the source community group.

= Can unregistered visitors (guests) chat? =

Yes — Guest Chat lets unregistered visitors join chat rooms, message vendors on marketplaces, ask questions on directory listings, or chat with site support. Guests enter a display name (and optionally an email), then participate as a guest user. Their thread history is preserved if they later register.

= Does it support voice and video calls on WordPress? =

Yes (WebSocket version) — one-on-one and group voice / video calls live inside the messenger thread, not as a separate Zoom / Whereby integration. Hosted media relay is included with the WebSocket license, no separate Twilio account, no Daily / Whereby subscription, no Zoom developer plan. Calls are full-screen on mobile and picture-in-picture on desktop.

= Is Better Messages GDPR-compatible? =

Yes. All message data is stored only in your WordPress database. The WebSocket cloud relay is blind to message content — it routes encrypted events but does not read, store, or inspect what passes through. Better Messages also integrates with WordPress's built-in Personal Data Export and Erasure tools. For sites with stricter data-sovereignty requirements (GDPR Article 9, HIPAA-adjacent, regulated-data workloads), a self-hosted plan is available — contact support.

= Does it have AI features? =

Yes. AI Chat Bots (OpenAI, Anthropic Claude, Google Gemini) work in the free version with your own provider API key. They act as full participants in any thread, with custom system prompts and per-bot points charging via GamiPress / MyCRED. Better Messages Cloud AI (WebSocket version) provides AI Content Moderation (23+ categories including spam, scam, doxxing, contact sharing), AI Message Translation (53 languages with auto-detection), and Voice Message Transcription (99+ languages) — all included with the WebSocket license, no third-party API key required.

= Does it have native iOS and Android apps? =

Yes — Better Messages ships native iOS and Android mobile apps built on Capacitor, with push notifications, real-time delivery, voice / video calls, and full messenger feature parity with the web. White-label rebuild is available for sites that want their own branded app on the App Store / Play Store under their own developer accounts.

= Can I translate the messenger interface to my language? =

Yes — Better Messages is fully translatable through standard WordPress translation tools (Loco Translate, WPML, Polylang) using the `bp-better-messages` text domain. Ships with 30+ community translations. Contribute or improve a translation at [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/bp-better-messages/).

= Does it support end-to-end encryption? =

Yes (WebSocket version). End-to-end encryption is enabled per thread — messages and file attachments are encrypted in the sender's browser with AES-256-GCM before transmission, stay encrypted at rest in the database, and decrypt only in the recipient's browser. The server stores ciphertext only, no admin, host engineer, or attacker with database access can read the message content of an E2E thread.

= Where can I find detailed documentation? =

The complete documentation, integration guides, REST API reference, hooks reference, video tutorials, and 80+ blog posts are at [www.better-messages.com](https://www.better-messages.com/).

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/bp-better-messages` directory, or install the plugin through the WordPress plugins screen directly.
1. Activate the plugin through the 'Plugins' screen in WordPress
1. Use the Settings -> Better Messages to configure the plugin

== Screenshots ==

1. Group conversation with photo sharing, emoji reactions, replies and @mentions — alongside a conversations list with unread badges, pinned chats, online presence and live typing indicators
2. Embedded video and link previews — YouTube, Vimeo, Spotify, and 20+ oEmbed providers
3. Full-text search across every message, with matches highlighted in the conversations list
4. Start a new conversation — recipient search with live results and online status
5. Mini chat window that follows members across your whole WordPress site
6. On-site toast notifications for new messages — visible anywhere on your WordPress site
7. Dark mode across every surface of the messenger
8. Voice and video messages, with one-tap transcription
9. Read a conversation in your own language — messages arrive translated, with the original one tap away
10. Share a location with a map picker and nearby place suggestions
11. AI chat bots powered by OpenAI, Anthropic (Claude) and Google Gemini
12. Appearance tab — repaint any part of the messenger and watch every change in the live preview
13. Settings — email, browser push and on-site notifications, and 18 more tabs of options
14. Group video calls for up to 32 participants, right beside the conversation (WebSocket version)
15. One-to-one HD video and audio calls from any conversation (WebSocket version)

== Changelog ==

**Important — please read before updating to 3.0**

3.0 is a full redesign. Your conversations, settings and integrations carry across untouched — including the colors and sizes you set in the Customizer — but three things need your attention:

* Custom CSS needs rewriting: the messenger's classes are now prefixed `bm-` instead of `bpbm-` and `bp-messages-`
* Update the exclusion lists of any caching or optimisation plugin: the script and style files were renamed (`bp-messages*` → `better-messages*`, `bpbm-worker.js` → `bm-worker.js`)
* The WordPress Customizer integration is gone — colors and sizes now live in the Appearance tab, and snippets calling `Better_Messages()->customize` stop working

**Noticed something wrong after updating to 3.0? Please tell us.** A redesign this large can behave differently on a theme or plugin combination we have not seen. If anything looks broken, missing or out of place, email us at [support@better-messages.com](mailto:support@better-messages.com) — or open a topic on the [support forum](https://wordpress.org/support/plugin/bp-better-messages/) if you are can not contact email for some reason — and we will get it fixed. Please do not leave it unreported, every report speeds up a fix for everyone.

**Thank you to everyone who sent feedback and bug reports on the 3.0 release.**

= 3.0.14 =
* Improved **Open Member Profile** in a mini chat: it opens the profile in a new tab, so the chat stays open
* Improved a failed build in **Mobile App → Builds**: it now says why the build failed and what to fix, with the lines of the build log that show it
* Improved the **Appearance** settings to no longer add classes to the page's body: each is set on the part of the messenger it styles — custom CSS that used one, such as body.bm-widgets-left, should target that part instead
* Added editing the last message you sent by pressing the Up arrow in an empty reply box
* Fixed someone made a member by opening a chat room with **Auto join users** missing from that room's online list until the page was reloaded, so the room looked empty to whoever came first
* Fixed reporting a message showing "You already reported this message" right after the report went through
* Fixed a message that only carried files staying in the conversation with nothing in it after its last file was removed by attachment retention
* Fixed a mention showing as HTML code instead of @name on the Administration page, in the Approve and Reject windows and in exported transcripts
* Fixed "Cannot reach the site" showing on pages where the messenger is not open when the connection drops
* Fixed a forwarded file failing to open with **File Protection** on for members of the conversation it was forwarded into who are not in the one it was first sent in
* Fixed messages looking sent to the sender while none of them reached the others, after a phone paused the page in the middle of a send: a send that gets no answer is sent again by itself, without holding back the messages after it
* Fixed a message whose sending was cut off by reloading the page taking a long time to go out from the new page
* Fixed the offline notice counting messages the site refused among those that will be sent once you are back online
* Improved sending attachments on a slow connection: an upload that was cut off carries on where it stopped, and each new try is given more time
* Fixed typed messages disappearing without being sent, with the **Bad Words Filter** in use, after its list of words once failed to load
* Fixed the picture in the **Camera** window showing small in the middle of the preview after switching camera on an iPhone, sometimes until the window was closed
* Fixed new messages not arriving until the page was reloaded after one request to the site got no answer, as when a phone paused the page in the middle of it: requests now give up after a minute and the messenger carries on
* Fixed the messenger in one tab showing no new messages until it was reloaded, after another tab of the site was closed while it was resetting the messages kept in the browser
* Fixed the messenger waiting for good when reopening the messages kept in the browser failed, instead of carrying on without them
* Fixed the delivery status window showing "Loading..." for as long as it was open when the WebSocket server sent no answer
* Fixed text smileys staying as text, and the banned word warning not showing, for the rest of the page after they failed to load once
* Fixed the emoji picker and the stickers never loading when their data did not arrive
* Fixed an encrypted attachment never showing when its download stalled
* Fixed the recent chat heads being forgotten when a chat was opened or closed before the stored ones had been read
* Fixed the forward window's list of conversations loading no further after one load failed
* Fixed the app trying to answer a call for the rest of the session when the call was cancelled before it reached the app
* Fixed a visitor who signed up as a guest while a chat room was open still being offered **Login** in that room, which took them to the login page, instead of the button to join it
* Fixed a chat room that only members can read staying on its loading placeholders for someone who had just joined it, such as a guest joined by **Auto join users**, until the page was reloaded
* Fixed **Set up encryption** being offered to someone who already has encryption keys when the site did not answer, which could replace the keys and leave earlier encrypted conversations unreadable
* Fixed a call staying on "Connecting" on both sides when the answering side could not start it
* Fixed a message reaching the others ahead of one sent just before it, such as a shared location
* Fixed the app showing "Cannot reach the site" after a short loss of connection
* Fixed the next voice message not playing on by itself with **File Protection** on
* Fixed an encrypted file that could not be downloaded asking to restore your encryption keys, instead of saying it could not be downloaded
* Fixed a conversation's **Files** tab leaving out files that were forwarded into it or sent by **Mass Messaging**, and listing a forwarded file twice in the conversation it came from
* Fixed a conversation's **Files** tab showing the file of a message still held for moderation
* Fixed **Pre-Moderation** not holding messages that other plugins send for a member, such as a listing's contact form, and a missed call or other automatic message making its sender approved under **First-Time Senders** — automatic messages sent with [`new_message()`](https://www.better-messages.com/hooks/php-functions/#new_message) can pass `skip_moderation`
* Fixed a file sent on its own sticking out past the other messages, and parts of the messenger drawn larger than designed, on themes such as Twenty Twenty-Five
* Fixed a file sent with a caption looking like two separate boxes in the **Outlined** message design: the file and its caption are now outlined as one message
* Updated the Freemius SDK to 2.13.5
* Security improvement: the **Users** widget's member list, and the users list in the REST API, are only served to someone the widget is shown to, and list only the members it is set to show, so a site that does not use it no longer lists its members to visitors
* Other minor bugfixes and improvements

[See the full changelog](https://www.better-messages.com/changelog/) for every earlier version.

== Upgrade Notice ==

= 3.0.0 =
A full redesign: a rebuilt Appearance tab with live preview, location and video messages, per-conversation translation, and the Mobile App page out of alpha. CSS classes and script filenames changed — update custom CSS and caching exclusion lists. The Customizer is gone, but its colors carry over.
