=== ZenCommunity – Community, Forum, Social Network, Chat & Support Tickets === Contributors: kodezen, tusharimran Tags: community, forum, social network, membership, lms Requires at least: 6.8 Tested up to: 7.1 Requires PHP: 7.4 Stable tag: 3.1.0 License: GPLv3 License URI: https://opensource.org/licenses/GPL-3.0 Build a modern online community in WordPress: spaces, social feeds, discussion forum, events, polls, member profiles, chat and support tickets. == Description == **ZenCommunity is an all-in-one WordPress community plugin.** Create a private or public online community, discussion forum or social network on your own site, with spaces, activity feeds, member profiles, events and polls. Add real-time messaging, a help desk and live chat with ZenCommunity Pro. No third-party platform, no monthly per-member fees: your members, content and data stay in WordPress. https://www.youtube.com/watch?v=HtTed0ArtCA [Website](https://zencommunity.pro) | [Pricing](https://zencommunity.pro/pricing) | [Official Community](https://community.kodezen.com) = Why ZenCommunity? = Most sites stitch together a forum, a chat app, a help desk and a live chat widget. ZenCommunity puts them in one fast, native app, so conversations, questions and support requests never get scattered. * **Launch in minutes** with a guided Setup Wizard and community-type presets. * **Looks great anywhere**: app-style community page, or build your own layout with Full Site Editing blocks. * **Dark & light mode**, your brand colors and logo, and your theme's font. * **Translation-ready** and accessible. = Community & Social Network Features = * **Spaces and groups** – unlimited public, private or hidden spaces, organized into collections, with their own feed, members, rules and settings. * **Social activity feed** – posts with images, media, GIFs, emoji, feelings, background colors, @mentions and #hashtags. * **Comments & reactions** – threaded replies, emoji reactions, link previews and bookmarks. * **Post types** – regular posts, polls, Idea posts with up/down voting, anonymous posts and scheduled posts. * **Events** – group events with RSVP. * **Member profiles** – display name, pronouns, cover, about, activity, connections, badges and a profile-completion bar. * **Member directory & search** – find members, posts and spaces instantly. * **Notifications** – in-app and email, with instant, daily or weekly digest delivery. * **Featured posts, media gallery, welcome banner** and configurable sidebar widgets. * **Moderation** – member approval, first-post approval, reports, warn, mute, timed suspend and ban. * **Roles & permissions** – a role manager to control who can view, post and moderate. * **Login & registration** – built-in pages or your own; members-only communities. * **Safety** – optional date-of-birth field with minor-safe messaging. * **Full Site Editing** – community blocks for the Site Editor, plus shortcodes. = Pro Features = [ZenCommunity Pro](https://zencommunity.pro/pricing) adds: * **Real-time messaging** – private and group chat with typing indicators, read receipts, file sharing and chat heads. * **Support ticketing / help desk** – turn any post into a ticket; assignees, statuses, priorities, canned replies, internal notes, CSAT ratings, auto-close and guest tickets. * **Live chat widget** – real-time website chat, even across domains, with multiple sessions, file sharing, agent profiles and business hours. * **AI support agent** – answers tickets and live chats from your knowledge base, built from your docs or a crawled website. * **Reports & analytics** – members, spaces, events and content trends, leaderboard, activity heatmap and CSV export. * **Audio and video spaces**, team posts, anonymous comments, Top Ideas sorting. * **Follow & block** members, social login and WordPress comments integration. = Integrations = **LMS community** – share course activity (enrollments, completions, lessons, quizzes, Q&A) to your community feed automatically with: * [Academy LMS](https://academylms.net) – the deepest integration: course catalog, curriculum, enrollment, reviews, Q&A and certificates right inside the community. * Tutor LMS * LearnDash * LearnPress * LifterLMS * MasterStudy LMS **More** – GameEngine gamification (points, ranks, badges, leaderboard), email notifications and a migration tool to move from other community plugins. = Who is it for? = Online courses and LMS sites, membership sites, coaches and creators, SaaS and software companies, e-commerce stores, agencies, clubs and local groups, and internal teams. = Performance = ZenCommunity runs entirely on your WordPress site. Pages load the data they need in a single request, real-time features use lightweight scripts, and no external service is required for the community to work. == Source Code == The compiled JavaScript and CSS in `assets/build/` are generated from human-readable sources kept in the public repository: https://github.com/kodezen/zencommunity * JavaScript/React sources: `dev_zencommunity/` (admin app in `dev_zencommunity/Admin/`, block editor integration in `dev_zencommunity/fse/`) * Build configuration: `package.json`, `webpack.config.js`, `tailwind.config.js`, `tailwind.admin.config.js`, `postcss.config.js` * PHP dependencies: `composer.json` To build the assets yourself: 1. Clone the repository and install Node.js 20 or later and Composer. 2. Run `npm ci --legacy-peer-deps`, then `npm run build` (compiles everything into `assets/build/`). 3. Run `composer install` to install the PHP dependencies. == External services == ZenCommunity works entirely on your own site. It contacts an external service only in the cases below. = Kodezen usage insights and deactivation feedback (store.kodezen.com) = ZenCommunity uses the StoreEngine SDK to talk to Kodezen's store at https://store.kodezen.com/. * **Usage insights (opt-in only).** After installation, an admin notice asks whether you want to share usage data. Nothing is sent unless an administrator clicks "Allow". If you allow it, the plugin sends: site URL and name, admin name and email, server IP address, operating system, WordPress/PHP/MySQL and server versions, PHP settings and extensions, locale, multisite status, the active theme, active and inactive plugins, and the plugin version. After that it reports the same data about once a week. You can opt out at any time under ZenCommunity → Settings → License. * **Deactivation feedback.** When you deactivate the plugin, an optional form asks why and lists what will be sent. Only if you click "Submit & Deactivate" does it send the reason, any comment you type, your name and email, the site name and URL, and the usage data listed above. Choosing "Skip & Deactivate" sends nothing. This service is provided by Kodezen: [Terms of Use](https://kodezen.com/terms-and-conditions/), [Privacy Policy](https://store.kodezen.com/privacy-policy/). = Link previews (the websites members link to) = When a logged-in member hovers over a link in a post or comment, your site fetches that link's page once to show its title, description and image in a preview card. The request goes from your server to the linked website, and sends only the page address and a user agent that names your site. Nothing about the member is sent. For video and media links (for example YouTube or Vimeo) the details come from that service's public oEmbed endpoint, from the list of providers built into WordPress, instead of the page itself. Results are cached for a day. The preview image is then loaded by the member's browser from the linked website. Nothing is fetched until someone hovers over a link, and logged-out visitors see only the address. Developers can turn this off with `add_filter( 'zencommunity/link_preview/enabled', '__return_false' );`. Each linked website's own terms and privacy policy apply. = Links to other Kodezen products = The "Extend your Community" dashboard section and the Live Chat settings link to product pages and downloads on https://store.kodezen.com/. These are plain links that open in your browser, and no data is sent until you click one. Products hosted on WordPress.org (for example GameEngine, GemBooking and Zaplane) are installed only when an administrator clicks "Install". They come from WordPress.org through WordPress's own plugin installer. == Installation == 1. In your WordPress admin, go to **Plugins → Add New**, search for "ZenCommunity" and click **Install Now**, then **Activate**. 2. Follow the **Setup Wizard** to name your community, pick a community type and choose modules. 3. Visit your community page and invite your members. Make sure pretty permalinks are enabled under **Settings → Permalinks**. == Frequently Asked Questions == = Is ZenCommunity free? = Yes. Spaces, feeds, comments, reactions, polls, events, profiles, notifications, moderation and LMS integrations are free. Messaging, support tickets, live chat, the AI agent and reports are part of ZenCommunity Pro. = Can I use ZenCommunity as a discussion forum? = Yes. Each space works as a forum board with threaded comments, Idea voting, hashtags, search and moderation. = Can I create a private, members-only community? = Yes. Make the whole community members-only, or set each space to public, private or hidden and choose which roles can view it. = Does it work with my LMS? = Yes. ZenCommunity integrates with Academy LMS, Tutor LMS, LearnDash, LearnPress, LifterLMS and MasterStudy LMS. = Does it work with my theme and page builder? = Yes. The community page works with any theme, and block themes can build custom layouts with the Full Site Editing blocks. = Does it support real-time chat? = Yes, with ZenCommunity Pro: private messages, group chat and a website live chat widget. = Can I turn community posts into support tickets? = Yes, with ZenCommunity Pro. Any post can become a tracked ticket with one click. = Is it translation-ready? = Yes. All text can be translated, and relative times follow each language's plural rules. == Screenshots == 1. Community Feed 2. Create Posts, Polls & More 3. Private Messaging 4. Support Ticketing 5. Live Chat == Changelog == = 3.1.0 - 08/11/2026 = * Added - Stories (with ZenCommunity Pro's Stories add-on): a row of story cards above the feed, a composer for photos, short videos or text on a coloured background (with @mentions, a live preview, and text you can drag, resize and rotate), a full-screen viewer with tap, keyboard and pause controls, private replies and a private archive on your own profile. Members choose how long a story stays up, up to the longest time an administrator allows, and can add a link that appears as a button under the story. A member with a story you can watch gets a ring around their avatar on posts, comments and profiles, and the viewer's settings icon changes who can watch it (Public, Followers or Only me). Nothing shows until an administrator turns the add-on on. * Added - Several pictures can be selected at once when writing a post or a comment (up to 10 each). * Added - Inline post editor (Settings > Customization, off by default): the post editor starts small and grows with the text, and the formatting toolbar appears over selected text. Comments, tickets and chat are unchanged. Needs ZenCommunity Pro. * Added - Ad slots in the feed, the sidebar, between comments and between stories, drawn as a highlighted "Sponsored" card. Settings > Ads sets where the first ad in the feed and between comments appears and how often it repeats, where the sidebar ads sit among the widgets (top, after the first widget or bottom) and how often an ad appears between stories. The ads themselves come from ZenCommunity Pro. * Added - Settings tabs for Policies, Policy acceptances, Parent and Ads (needs ZenCommunity Pro). * Added - Labels (Settings > Labels): rename what the community calls a Group, Collection, Ticket, Feed, Bookmarked and the About and Connections profile tabs, for example Group to Class, without a translation plugin. Menus, pages, buttons, empty states and new notifications follow; clear a name to go back to the default. Needs ZenCommunity Pro. * Added - Menu Settings: a Rename action on Feeds, Groups, Members and the other built-in menu items. Only the label changes; the address and what the item opens stay as they were. An empty name brings the default back. Needs ZenCommunity Pro. * Added - Profile fields: add your own text, select or multi-select questions to members' About tab and choose which also show on the member hover card. Not yet shown in Settings. * Added - Comments can be voted on (Settings > Customization > Vote on comments, off by default): members upvote and downvote comments instead of reacting to them, and a post's comments can be listed Top (best first). Needs ZenCommunity Pro. * Added - A member's pronouns show in their hover card when filled in. * Added - Settings for how much of a post and of a comment shows before "See More" (Customization), by default about 10 lines of a post and 7 of a comment. * Added - A Customization switch to hide the cover placeholder image shown for groups and profiles without a cover. It stays on by default. * Added - Links in notification and digest emails sign the member in: a one-time link that works for 48 hours, never for administrators, with failed attempts limited. Turn it off under Email > Mailing settings. * Added - Groups sidebar (Settings > Sidebar): a second list of widgets for group pages, next to the global sidebar. Members, About and Recent activity are widgets (the old layout is the default), and every widget's heading can be changed. Needs ZenCommunity Pro. * Added - A Group rules widget: group admins add and edit the group's rules in place on the group page. * Added - A "My store" tab on your own profile (when StoreEngine is active) with your orders, downloads and addresses. Paying and changing addresses open the store's own pages. * Added - Administrators: every image button opens the WordPress media library. A library picture is used as an attachment without being copied, and the community never deletes a file outside its own folder. * Added - Profile picture: a member's community picture and WordPress picture stay in sync both ways, and a member with no picture of their own gets their Gravatar copied in. * Added - Privacy and data (in a member's account): ask for a copy of your data, emailed as a link that expires once you confirm by email, see your notification and cookie choices, and delete your account (your posts and comments stay as written by "Deleted user"). WordPress's export and erase tools now cover everything ZenCommunity keeps about a member: profile, points, settings, posts, comments, reactions, bookmarks, groups, events, polls, notifications, badges and files. Needs ZenCommunity Pro. * Added - Settings > Privacy: how long the export link works, whether exports are prepared without an administrator, what "Delete my account" does (delete once confirmed, wait for an administrator, or not offered), a link to your cookie preferences page (for example a Complianz or Termly page), the request log and an audit log of every export, erasure and deletion. * Added - Policies in the app: a member who has not accepted a new or revised required policy is asked to before continuing, and sees what they accepted, with a print view, under Policies on their own profile (needs ZenCommunity Pro). * Added - Parent (needs ZenCommunity Pro): a My family section on the member page where parents, students and link requests are managed, and a Parent tab in Settings. * Added - Settings > Privacy: members under an age you choose can send and receive private messages only with moderators and admins (needs the Date of Birth field; 0 turns it off). * Added - Moderation (needs ZenCommunity Pro): a moderator can write a comment as "the moderation team" (shown as Moderator; only the group's moderators see who wrote it), merge a post into another post of the group (the old address redirects) and move a comment and its replies into a post of their own. Site moderators get a Moderation panel on a member's profile (warn, silence, suspend, ban, lift, history and private notes), and a suspended member's profile shows the days left. * Added - Settings > Content moderation: report reasons you manage, a name for deleted members, automatic silence and flag weights by trust level (needs ZenCommunity Pro). * Added - The Migration screen has a Dry run button. It reports, for each kind of row, what a run would add and what it would skip and why, and the finished run reports what it skipped. Nothing is changed by a dry run. * Added - GemSecurity integration (when GemSecurity is active): its lockout applies to community sign-in (the visitor gets a "too many attempts" answer with a wait time), sign-up and password reset requests are limited per address, and all of it is logged in GemSecurity as community activity. * Added - Privacy and data: members see their recent sign-ins (device and a masked address) and can sign out their other devices. Sign-ins are part of the data export and erase. * Added - Settings > Login & Registration: request limits for the community's REST API, 50 a minute for a signed-in member and 30 for a visitor by default (10 to 5000; a value outside that range is corrected), while GemSecurity is active. GemSecurity's own limit stays the floor. * Added - A feature that needs a Kodezen product (GemSecurity, GameEngine, TruePlayer) shows what it needs and one button (Install & Activate, Activate, or a link), with the real settings blurred behind it. Social login keeps a GemSecurity notice until GemSecurity's social login is switched on. * Added - New ticket: attach files (images, PDF, documents, video, CSV, zip, JSON) with the clip at the end of the editor toolbar, with the same limits as a reply. Files are uploaded when the ticket is created. * Added - Extension points for ZenCommunity Pro and other extensions: notification categories (zencommunity/notification/category); reports on other kinds of content (zencommunity/report/object_types, report/can_report, report/status_updated and report/note_required); a size limit per media type for uploads that are not images (zencommunity/attachment/max_file_size_kb); the community page title (zencommunity/app/title) with Helper::community_path() and community_url(); moderation (zencommunity_assert_can_write() on the post and comment paths, zencommunity/authorization/blocked, zencommunity/comment/hide_author, zencommunity/feed/redirect and zencommunity/user/status_changed); and privacy (zencommunity/privacy/exporters, privacy/erasers, privacy/anonymize_content and privacy/cannot_delete). Nothing changes until an extension uses them. * Changed - Pro-only settings are marked as such: the inline editor, comment votes, renaming menu items, custom names, the Groups sidebar, group chat, anonymous posts and the member Privacy and data page carry a PRO tag, are off without ZenCommunity Pro, and are visible to site administrators only. Pro settings pages open with their settings blurred behind an upgrade card instead of an upgrade dialog on click. * Changed - The upgrade dialog on the community matches the one in the admin, and the sidebar's Upgrade link is a Pro card (administrators only). * Changed - The Migration screen has a new layout: a summary of what is in the source, what is migrated and what remains, an overall progress bar, a row with progress for each kind of item, collapsible options, and a table for the dry run result. A source that is not available is shown as a single line. * Changed - The Labels settings are now a card under Menu Settings, with its own Save button; the separate Labels entry is gone and an old ?tab=labels link opens Menu Settings. * Changed - The About tab is now the first profile tab (a profile still opens on Feed), and the Connection tab is called Connections by default. Sites that have reordered their profile tabs keep their order. * Changed - Reports: the reasons offered, and their names in the moderation queue and the story reports, now come from a list a site can manage (ZenCommunity Pro); without it they are the same six as before. * Changed - Deleting your account from the old one-step route no longer deletes at once: it starts the confirmation by email. * Changed - Account pages: Notifications, Privacy and data and Family share one row of tabs, and Family is called Parent. * Changed - The policy notice is a floating bar with Expand and Accept; the full text and the checkbox are in a modal. * Changed - Picture addresses accept a full URL (for example pictures offloaded to a CDN), not only a path on this site. * Changed - A ticket reply stays in the editor until it is sent; if sending fails the text is kept with a Retry button. * Changed - The formatting row above an editor scrolls sideways when it does not fit, instead of being cut off, and the duplicate picture button under the editor is gone. * Changed - On phones, the Product, Type, Priority, Assignee and AI settings of New ticket collapse into a side rail that opens over the editor. * Changed - On a post in a group you have not joined, the Comment button is disabled and a note offers Join group. * Changed - On a ticket page, the three-dots menu that only held Copy link is a single copy-link button. * Changed - Ticket auto-close settings are on by default. * Improved - Comments and reactions appear at once and are put back, with a message, if the server refuses them. Quick clicks on a reaction are sent one at a time, so none is lost when a list of posts finishes loading late; the reaction routes answer with the new counts. * Improved - Editors: Ctrl/Cmd+K opens the link box in every editor, pasting a web address over selected text links it (one undo step), the link box and formatting bubble are no longer clipped by a post card, and the comment box grows to 200px and then scrolls. * Improved - The group Discussion tab uses the full width when no widget is turned on for the Groups sidebar. * Improved - Ticket messages: Reply, Edit, Delete and Pin have tooltips, Delete asks first, only one reply box shows at a time, a reply opens in view with the cursor in it, and the time of a message shows the exact date on hover. * Improved - Group titles wrap instead of being cut off in the header and the sidebar, and group cards are the same height, with two lines of description. * Fixed - Reacting to a post removed your reactions on its comments, a post's counts included reactions on its comments, and its like count held whichever reaction was used last. Each reaction on a post or a comment is now its own, and the like count is the total. * Fixed - With Subgroups on, the Groups page listed every subgroup next to its main group; it now lists main groups only. * Fixed - Community sign-up failed when GemSecurity's anti-spam was on. * Fixed - The header menu was not centred in the top bar, group card names did not line up with their descriptions, group titles lost the bottom of letters like g and q, and the Moderation list had a blank left margin. * Fixed - In dark mode the ticket header's back arrow and pinned-messages icon were almost invisible, and the group, name and counts in the search results were hard to read. * Fixed - On phones the slide-in menu stayed open after choosing an item, and the three-dots menu on a post overlapped the header when scrolling; the first now closes on a choice and the second on scroll. * Fixed - New ticket: the title was cleared when you opened the description. * Fixed - Ticket page on phones: the ticket title was hidden behind the header, and the page had a second menu button next to the header's. * Fixed - A long attachment name pushed a ticket reply off the screen; names are shortened with the start and the extension kept. * Fixed - Ticket cards on a member's profile and notifications showed stored HTML (such as