v1.1.7 Latest
September 3, 2026
Improve 2 Fix 10 Dev 2 Compat 2
Improve
- The Save control in the media lightbox now bookmarks the post the photo belongs to, so it lands in the same saved list as Save on the feed card. It previously saved to a WPMediaVerse Pro collection, and removed itself from the screen when that was unavailable.
- A profile field group's visibility control now says that it is a ceiling: a field inside it can be more private, never more public, and setting a section to Public does not publish the fields inside it.
Fix
- Reactions left in the media lightbox now apply to the post, so they appear on the feed card and are counted once. They previously went to a separate media store and were visible only inside the lightbox.
- A member with a BuddyNext avatar is no longer asked to upload a profile picture on WPMediaVerse screens. Requires WPMediaVerse 2.4.0 or later.
- Photos added to a space album appear in the activity post again instead of the post rendering as text only.
- A space owner or space moderator clicking a reported-content notification now reaches that space's moderation panel instead of a 404. The emailed link is corrected too.
- Deleting a profile field or group opens a confirmation dialog instead of expanding the table row, which made the warning about permanently deleting stored member values almost unreadable.
- The invite list on Members > Invites uses the full width of the screen and scrolls sideways when it needs to, instead of being squeezed into a narrow form column.
- The Realtime and Push settings section is hidden when neither feature is enabled. Webhooks moved to Platform, alongside Integrations and Tools.
- The Explore sidebar's Browse card and the Insights daily-active tile render their icons instead of blank space.
- The settings save bar no longer sits flush against the section below it.
- Builder-generated CSS is kept on BuddyNext hub routes.
Dev
- The icon gate reads array-key icon slugs and scans BuddyNext Pro, so a missing icon fails the build rather than rendering as nothing.
- New filter buddynext_can_view_explore gates the Explore deck before it is built.
Compat
- Aligned with BuddyNext Pro 1.1.7. Install both updates together.
- Aligned with WPMediaVerse 2.4.0 for the avatar flag seam.
New 11 Improve 8 Fix 9 Security 2 Dev 2 Compat 1
New
- Space Files tab: a space has its own document drive members can browse, search, preview and download, with a built-in reader for PDFs and inline previews for other file types.
- Profile Files tab: each member gets a Files tab that shows their own documents inside BuddyNext's own interface.
- Space Media tab: photos uploaded to a space are filed to that space and honour per-viewer visibility, and a moderator can remove one from the space without deleting the member's own copy.
- Share a document with specific members at a chosen permission, or with anyone through a link, from its page in the Files tab.
- Attach a document to a post from the composer, shown as a document card in the feed.
- Choose which profile fields appear in the profile header, and in what order, from the field editor.
- Change a profile field's type in place, for example a text location into an interactive map, without losing what members already entered.
- The members directory can filter by member type with chips, matching Spaces.
- Per-space brand colour, set by the space owner.
- An admin can mark a member's email address as verified from the member editor, for the case a verification email never arrives.
- A [buddynext_search] shortcode and a search-bar helper for themes.
Improve
- The media lightbox is rebuilt with icon-only actions and an overflow menu, fullscreen, edit, and save-to-collection.
- A comment made on a photo in the media lightbox now appears in the post's comment thread, and the comment count is accurate.
- Post pinning is now profile-only; inside a space, feature a post with an Announcement instead.
- Dismissing an announcement sticks after a reload, announcements notify members in the background, and a whole group of join requests can be decided in one action.
- Notifications collapse repeats of the same event and show an accurate count.
- Documents open in a clean built-in reader: a PDF renders as a readable single column instead of the browser's embedded viewer, and office and text files render inline.
- The admin Activity screen browses, searches, filters, edits and deletes community activity with the standard paged control.
- A post set to "Connections" is now visible to the author's connections on their profile.
Fix
- Members can attach photos to a post again; the image picker no longer fails silently.
- A confirmation dialog opened from the media lightbox is now clickable.
- Photo posts reserve their tile space instead of flashing as blank cards, and the photo count is correct.
- A document upload no longer announces itself as "shared a photo" in the feed.
- "Only me" media is no longer published publicly; a media item's privacy follows its post.
- A members-only post in a space now shows on its hashtag page to members of that space.
- A private or secret space created through the API is saved with that privacy, not public.
- Reported posts stay out of the reporter's feed, and moderation-queue counts, suspensions, appeals and report labels are corrected.
- The document-attach control is hidden on a site whose document storage is read-only.
Security
- Inbound access-webhook calls must carry a replay-proof, timestamped signature by default; a site still sending the older body-only signature can re-enable it while it migrates its callers.
- Closed a post-login open redirect and a route that ignored profile privacy, and the link-preview fetcher re-checks its SSRF guard on every redirect hop.
Dev
- The end-to-end journey harness resolves the site and its test users from the local install instead of a hardcoded host.
- New filters buddynext_profile_hero_fields (profile header fields) and buddynext_can_view_explore (gate the Explore feed), plus a schema-authority gate so a table cannot be defined in two places.
Compat
- Aligned with BuddyNext Pro 1.1.6. Install both updates together.
New 2 Improve 3 Fix 17 Dev 6 Compat 1
New
- Search inside a space. A space's Feed tab now carries a search box that returns only that space's own posts, so a busy space stays findable past the first screenful. Results are paged, and the box follows the space's privacy: a member who cannot read the space is not offered it and matches nothing.
- A member can verify their own email address from their profile.
Improve
- Profile and space photos taken on a phone are accepted. Covers and avatars were capped at 1920x1080 and 1024x1024, so an ordinary 4032x3024 phone photo was refused and had to be cropped by hand first. The limit is now a pixel-count ceiling generous enough for any phone, and site owners can raise or lower it with the `buddynext_upload_max_megapixels`, `buddynext_upload_max_dimension` and `buddynext_upload_max_bytes` filters.
- Settings that accept "no limit" now say so with a tick box instead of asking for a 0. Eleven settings across the admin - rate limits, space caps, retention, strike thresholds - no longer need a footnote explaining that zero means the opposite of what it reads.
- The WordPress admin menu now lists entry points instead of every screen, each tab carries an icon that tells it apart, and no section exceeds the documented five-tab cap. Every screen stays reachable, and the menu highlights the section you are in.
Fix
- The admin navigation rail now stops at the height of the window and scrolls itself, so expanding several sections no longer pushes the last one past the bottom of the page.
- The Community Name now reaches the browser tab title on community pages and the name emails are sent under, which its own setting has always promised. The WordPress site title still applies everywhere else.
- A banned word blocks that word and no longer blocks longer words containing it, so "ass" stops rejecting "class" and "passionate". Add * to an entry, as in "spam*", to catch variants on purpose.
- A space gated behind a membership plan no longer prints its posts underneath the upgrade prompt.
- A space the join gate will refuse no longer offers a join button, on the space page or in the directory.
- The shared admin filter bar stacks correctly below 782px, where the search field previously rendered as a 256px-tall box and the select stayed a narrow stub.
- The access-webhook audit log records its timestamps in UTC like every other record, so a call can be matched to what it changed.
- Space new-post emails are delivered again. On any site running Action Scheduler the queued email job failed on every space post, so no member received one. The in-app notification arrived normally, which hid the failure from both the member and the site owner.
- Discovery content is no longer hidden on phones and tablets. Trending topics, people to follow, spaces to discover and browse-by-category vanished entirely below 1025px on the feed, Explore, Members, Spaces and Hashtag screens, leaving a phone with no way to discover anything; they now render beneath the content.
- The browser tab now names the screen on every community page. Notifications and Messages showed the site name twice, and the remaining hubs showed their page's name rather than the screen's.
- The hub Pages table in Settings scrolls on a tablet, so its last column can be reached.
- A missing database table is repaired on the next load. The installer treated a matching recorded schema version as proof the tables existed, so a table lost to a partial restore stayed missing.
- The offline service worker follows the site's real login, admin and REST paths instead of assuming the defaults, so it no longer caches a screen it should leave alone.
- The member editor reports a profile that failed to save instead of reporting success.
- The verified badge no longer appears on sites that do not run email verification.
- The Spaces directory set to List renders compact rows instead of stretched cards.
- A visitor switching the members directory between grid and list no longer overwrites the layout the owner set on the block.
Dev
- New filter `buddynext_can_view_space_content` lets an add-on withhold a space's content before it is rendered or cached.
- New filter `buddynext_transactional_notification_types` lets an add-on declare a notification that must bypass member email preferences, for advance-notice obligations.
- `SpaceMemberService::can_join()` answers whether the join gate would allow a member in, so a surface can ask before offering the action.
- Search accepts a `scope_space_id` argument on the `buddynext_search_query_args` filter to restrict content results to a single space, narrowing the existing visibility rules rather than replacing them.
- `PostService::get_many()` hydrates a batch of post IDs in one query, in the order asked for, skipping IDs with no row.
- A sidebar widget can declare `mobile => false` when it already has a purpose-built mobile surface, so the same information does not render twice on one screen.
Compat
- Aligned with BuddyNext Pro 1.1.5. Install both updates together.
Fix 1 Dev 1
Fix
- Feed and media JavaScript modules are versioned through the import map, so a browser no longer runs a stale module against a newer one after an update, which could blank the Activity and composer page with a module export error.
Dev
- Split feed and media sub-modules (composer, post card, share modal, shared helpers and upload core) are registered as first-class Script Modules with per-file cache-busting instead of unversioned relative imports.
New 3 Improve 5 Fix 9 Dev 2
New
- Community activity and Members showcase blocks, plus size, follow, stats and join-action options on the member and space cards.
- Search bar block can scope what it searches, and hand-picked showcases can be curated by exact selection.
- POST /auth/verify endpoint so a member can finish signing up from inside the app.
Improve
- Every block previews live in the editor with the correct tokens, declares the styles it needs, and applies its block supports.
- Member and space blocks render the shared cards instead of a private copy, so directory rows are styled consistently everywhere.
- Person-scoped blocks follow the page's author, and member-context blocks are no longer offered as free-standing page content.
- Long feed posts show a preview and open in full on their own page, and post text uses a readable line measure.
- Interactive controls meet the 40px tap target on touch devices.
Fix
- Join, Leave, Follow, Connect and kebab-menu buttons on the block cards now work, so the blocks declare their Interactivity store and view module.
- Space Directory and Spaces Showcase blocks honour the List layout setting instead of always rendering as a grid.
- Reaction summary and the React button never show a raw reaction slug; an unknown reaction shows a neutral label and glyph.
- Third-party plugins that draw the front end (cookie-consent, header/footer, SEO) are kept on BuddyNext hub routes, discovered rather than allow-listed, with their styles and scripts intact from the first request.
- Profile fields carry their required state into the form, new fields default to members-only, and a system field group can never be locked by a plan.
- Saving a profile keeps the member on the edit screen, and the visibility control is tied to its label.
- The composer draft no longer re-pins a panel type, so a dismissed poll stays dismissed.
- Partner surface and border tokens resolve correctly instead of tinting against their own background.
- Admin flash notices can be dismissed and success notices clear themselves.
Dev
- Blocks declare their own editor and view assets; eight dead Interactivity stores were removed from the shared bundle.
- Two-layer regression coverage: PHPUnit integration tests plus an effect-based Playwright browser-journey gate for blocks and shortcodes in CI.
New 3 Improve 6 Fix 14 Security 2 Dev 2 Compat 1
New
- Composer media previews are real for images, video and audio, so you see what you are about to post rather than a generic tile.
- Explore renders audio and video as typed cards with a real video poster, instead of a broken image frame.
- A long profile bio collapses behind Show more rather than pushing the rest of the profile down the page.
Improve
- The feed loads past 50 posts.
- Link preview cards now appear while you type, and the post itself never waits on the linked site to answer.
- The composer audience popover, the comment reaction picker and the mobile touch targets stay on screen at phone widths.
- The hashtag sidebar works, and no longer offers Follow twice.
- Demo content introduces the site owner to their own community, fills a whole profile, and gives spaces a believable membership spread.
- The object-cache admin warning is sized to the site rather than shown to everyone.
Fix
- Posting a link could hang forever on "Posting...". Saving a post no longer depends on the linked site answering; the preview is fetched in the background and fills in when it arrives.
- Link preview cards never rendered in the composer. Same root cause as the hang: a DNS lookup that could block for 60 seconds per call.
- Link cards lost the first letters of the domain, showing "bcomdesigns.com" for wbcomdesigns.com.
- A post permalink opened with the entire comment thread hidden, including when a notification linked you straight to it.
- Member directory cards showed a placeholder gradient instead of the member's uploaded cover photo.
- Pressing n reloaded the page instead of focusing the composer already on it.
- A zero-result search left the unfiltered pager sitting under the empty state.
- Members could overwrite a member type the community had assigned them, and a profile could refuse to save when the type field was not submittable.
- A failed embed no longer blanks the feed around it.
- Offline mode no longer answers API requests with the offline page.
- Turning on plugin isolation no longer silently deletes navigation menu items.
- A one-to-one conversation with nobody on the other end renders instead of erroring.
- Six REST defects found in mobile-app triage, covering fields the app reads on the profile and connection blocks.
- Notification and digest frequency settings save the value you chose.
Security
- A discussion created for a private or secret space was world-readable. Existing discussions are realigned with their space's privacy by wp buddynext repair-discussion-visibility.
- Logged-out visitors were granted every capability by a permission check that returned early.
Dev
- German ships complete, and the shipped-languages claim is enforced by the build.
- The REST catalogue takes its version from the plugin, so the published spec can no longer lag a release.
Compat
- Ships in lockstep with BuddyNext Pro 1.1.2. Install and test both together.
New 7 Improve 7 Fix 15 Security 5 Dev 4 Note 1
New
- Spaces can own albums. Turn on a space's Media tab and it gains an Albums view: create a named album, upload into it, reorder it, remove items. The audience is the space, so a private or secret space's albums stay invisible to non-members and out of search.
- Sign in with Apple, alongside the existing social providers, with the native-app connect bridge so a member signing in on the phone lands in the same account they use on the web.
- An Articles tab on member profiles listing what that member has published, when WB Member Blog is active. Viewing your own tab also offers Write a new article, Manage articles, and an Edit link per row; your drafts and pending posts appear there, labelled, and nobody else sees them.
- Two-factor enrolment shows a QR code to scan instead of only a 32-character key. The key is still shown for anyone entering it by hand.
- The members directory can sort by Last Active.
- Hashtag counts, and profile-field search across the directory and site-wide search.
- WB Member Blog joins the companion catalogue, so it installs from inside BuddyNext like every other integration.
Improve
- Job, listing and course cards in the feed now carry a short description and cover art when the source has one. A card with no image renders the compact text shape it always did, with no empty box reserved.
- Integration cards say what happened again - "posted a new job", "completed a course". The verb was always passed and always dropped, which is why finishing a course produced two identical-looking cards instead of a completion and a certificate.
- Integration cards use the same box as a reshared post rather than a bespoke one with a coloured edge; embedded content now looks like embedded content wherever it comes from.
- Every admin listing becomes labelled cards on a narrow screen instead of a table with its columns cut off. Members, Spaces, Bulk Moderation, Announcements, Email Templates, Webhooks, Member Labels, Subscriptions, Invoices and the analytics tables were each broken at some width and are each fixed.
- Every admin and profile control is named for assistive technology, and destructive bulk actions ask you to type a confirmation rather than accepting one click.
- Moderation queues show when an offender is already suspended, and no longer invent report rows in an empty queue.
- Failed video embeds show a designed fallback instead of an empty frame.
Fix
- Media attached to a post now shows whatever the post's type. An announcement posted with a photo used to lose the photo.
- An event card published straight from the create hook had no date on it. The card now resolves the event's real date, and existing cards repair themselves.
- Choosing several Interests saved only the first, and saving again wiped the rest. The data was always correct; the edit form was prefilled with one value and faithfully saved what it had been shown.
- The row actions menu in admin lists opened off-screen, which read as an unresponsive button.
- Blocking now applies to comments. A block hid top-level comments but left replies and pinned comments visible.
- Declining a connection request makes it stop, and the cooldown now covers declines made before this upgrade.
- A private profile no longer tells visitors the member has never posted.
- Forced two-factor enrolment dead-ended in a redirect loop when a verification hold was already in force.
- Signup no longer wipes the email field after a failed validation.
- Suspended members can reach the appeal page, and the reaction route is no longer a dead end.
- Unknown member URLs answer 404 instead of a blank 200, and unknown space slugs answer 404 instead of 500.
- The Notifications tab of Settings was narrower than the other three, so the page shifted as you moved along the tab strip.
- An event with no cover image showed a blank block where the artwork belongs.
- The account menu could not be closed by clicking the caret again.
- Space owners can no longer strand their own space by changing their role; moderators manage a space, owners alone delete it or transfer it.
Security
- Closing a space left its posts publicly searchable.
- Private and secret space content was fully searchable by anonymous visitors.
- Account holds did not reach a partner plugin's REST surface, so a held member could still act through an integration.
- Rate limiting was silently disabled on any site without Redis or Memcached, and the limit decision is now atomic rather than only the counter.
- Space media over REST now applies the same three gates as the web Media tab.
Dev
- POST /app/strings serves the mobile app its translations from the catalogues already on the site, and /app/config carries a locale block.
- IntegrationActivity::refresh() lets a bridge correct the snapshot on a card it already published, instead of a wrong payload being frozen onto every member's feed.
- A resume post type, distinct from job.
- The generated REST catalogue in docs/api/openapi.json covers all 208 free endpoints.
Note
- The leaderboard ran 312 queries to draw 50 rows.
New 5 Improve 9 Fix 33 Security 2 Dev 4 Compat 2
New
- The sign-up form subtitle is editable under Members > Registration & Login, so a paid-only community is not promised "Free forever".
- A link preview can be removed while editing a post.
- A Member type profile field can be shown on signup and profiles; the member's choice assigns their member type and is set once.
- Losing your connection now shows a branded offline page with a retry, in your community's colours, instead of the browser's error screen.
- The app config endpoint reports each installed integration with its on/off state and version, so a mobile client can hide a module the site does not run.
Improve
- The onboarding stepper shows numbered dots with the current step labelled, on every screen size, so six steps never clip or scroll.
- Messages runs edge-to-edge on phones, and the message field takes the full width with emoji, attachment and send on the line below.
- Members with an imported profile address that breaks mentions can now be repaired with one click from BuddyNext > Members, not only from the command line.
- The app now works offline as an app should: BuddyNext's styling is stored on the device, so an offline page looks like your community rather than an unstyled list of links.
- Stylesheets, scripts and images are cached as they are used, capped so they cannot fill a member's device, and cleared automatically when the plugin updates.
- The feed loads the next posts as you scroll, on the main feed, Explore and Bookmarks alike, without a page reload and without losing your place.
- Community screens use the full width of a phone. Cards were running at about two thirds of the screen because three separate layers of spacing stacked up, and the width is now the same whichever theme is active.
- The save bar on Edit profile and Notification preferences spans the width of a phone screen and shows its status there, so saving is confirmed instead of silent.
- Announcement and pinned posts are marked by their label rather than a coloured card edge.
Fix
- Everything past the first screen of the feed was inert: React, Comment, Share and Save did nothing on any post loaded after the first page.
- Your own post now sits at the top of your feed for a few minutes after you publish it, instead of below every post from the people you follow.
- Notification preferences could not be saved on any screen size. The Save bar was rendered at the far end of the page rather than pinned, and on phones the email frequency options were clipped by the card so "Off" was cut in half.
- The count beside the Notifications heading went blank as the page finished loading, and dismissing an unread notification left the Unread tab still counting it.
- Tapping Unread or Requests in Messages on a phone opened a conversation instead of showing the filtered list.
- The announcement expiry and schedule fields in the post composer were pushed off the row on phones, so neither the date nor its clear button could be reached. Both now also name the site timezone they are read in.
- Toasts, cookie notices and save bars could sit underneath the mobile navigation bar; every bottom-pinned surface now clears it from a single measurement.
- The character counter in the composer kept the previous post's count after publishing.
- The feed tab strip gave no hint that more tabs exist beyond the screen edge, a desktop-only instruction showed on phones, and a placeholder was clipped.
- Onboarding kept the previous step's scroll position on Continue, so on phones the next step opened on blank space.
- The settings tab strip gave no hint that more tabs exist beyond the screen edge; it now shows the same scroll chevrons as the main navigation on every browser.
- A reaction on a message now appears for the other person live, instead of only after they reload the conversation.
- Short pages like Notifications showed a large blank gap between the content and the footer on phones, and short lists now end with a clear end-of-list marker.
- The onboarding steps were clipped at the right edge on phones; every input and step indicator now fits, and the step icon and heading share one line.
- The mobile conversation list filled only part of the screen, which hid the All, Unread and Requests tabs and stopped the list scrolling.
- Mobile navigation icons rendered far smaller than the centre button.
- The mobile navigation bar covered the theme footer and copyright line.
- Signing up behind a proxy that rewrote response headers reported a failure even though the account was created.
- Activating the plugin could save the site's URL rules without BuddyNext's own, leaving community pages on 404 until permalinks were re-saved.
- The signup form dropped the typed display name and used the email prefix instead.
- Editing a choice profile field could replace its options with the word "Array" and discard its advanced settings.
- The profile field editor hid the options and date settings when editing a Pro field type.
- Delete account showed an error and never deleted the account.
- Line breaks in a bio were lost, so a multi-line bio ran together on the profile.
- The poll form kept its options and end date after posting, so the next post inherited them.
- A space icon was clipped by the cover image on the settings page and showed square corners on the space page.
- The profile photo edit button drifted away from the photo on phones and tablets, and the photo was too small for its own controls.
- The profile header showed square bottom corners, and its tab strip drifted vertically on touch devices.
- A Date profile field with a "Display as" option (Year only, Month and year, Age) showed a wrong full date on the profile instead of the chosen format.
- Mentioning a member did not always notify them. The mention still linked to their profile, so nothing looked wrong, but no notification was sent when the member's username differed from their profile address - a space, a dot or an email in the username, or any member using a custom profile address.
- Members whose profile address was imported with an email in it could not be mentioned, and did not appear in the mention suggestions. Run "wp buddynext handles check" to find them.
- Registration warnings were hidden on BuddyNext's own Registration & Login screen - the screen you are on when configuring it, and the one BuddyNext's setup checklist sends you to. They now appear beside the setting they concern, and point to where the WordPress switch actually lives.
- The admin member list and member edit screen showed each member's username where their public profile address belongs; the two differ when a username contains a space or a dot, and for members using a custom profile address.
Security
- Pages and API responses are never stored on the device by the offline cache, so nothing personal can be shown to whoever opens the browser next.
- Marking the community private now also locks down the media/messaging REST API (WPMediaVerse), not only BuddyNext's own - closing a gap where media, tags and profiles stayed readable when logged out. Needs WPMediaVerse 2.2.0.
Dev
- Addons can append onboarding wizard steps via the buddynext_onboarding_steps filter and render them with the buddynext_onboarding_render_extra_steps action.
- Integrations can declare their plugin version when registering on the buddynext_integrations filter.
- Content services accept a historical created_at from importers, so a migrated community keeps its original comment, space, connection, follow and reaction dates.
- Added "wp buddynext handles check" and "wp buddynext handles repair" to report and normalise imported profile addresses. Repair reports only unless --yes is passed.
Compat
- Ships in lockstep with BuddyNext Pro 1.1.0. Install and test both together.
- The live-reaction fix needs WPMediaVerse 2.2.0, which adds the message-reaction updates to the messaging poll.
New 5 Improve 11 Fix 8 Dev 2 Compat 1
New
- A Get Started home greets you in wp-admin with a setup checklist, one-click demo data, theme suggestions, and quick links to every area.
- The Features tab has a search box that filters the toggle list as you type.
- The profile About tab renders any field group by its type, so custom groups and fields lay out cleanly without per-field code.
- Every member upload now creates a feed post, so photos from the composer, the Media tab, or an album all appear on your feed.
- GET /buddynext/v1/app/config gives the mobile app a single bootstrap handshake for site identity, feature flags, and the time contract.
Improve
- Admin navigation reads clearer: Integrations is now Add-ons, Integration Display is now Integration Settings, and License and Add-ons have direct menu shortcuts.
- Demo data can be loaded and removed right from the admin home, with the count of sample members, spaces, and posts shown.
- Every admin list table shares one action-button style, one empty-state design, and an Actions column that stays visible when the table scrolls.
- The members directory sorts by name and join date, admin tables show a consistent result count, and settings screens share one field-spacing rhythm and one bottom save bar.
- Eventonomy joins the companion apps list, and a Recommended themes section presents BuddyX, BuddyX Pro, and Reign.
- Sidebar widgets are organised per surface (feed, explore, members, spaces, profile, notifications, hashtags), each column curated for its page.
- Upload progress spinners were added across every upload point: composer, DM attachment, avatar, cover, album picker, and onboarding.
- Integration activity renders as a consistent, typed card in the feed for events, badges, and other connected apps.
- Badge and level-up notifications from integrations are collected for display in one place and never send a duplicate email.
- Member directories, the space roster, and the discovery asides are cached per viewer for large communities.
- Profile fields render true to their type: paragraphs are multi-line, multiselect values are separate chips, and Work and Education show dates and admin-added sub-fields.
Fix
- Members list action buttons are aligned, and the redundant Last Login column was removed in favour of Last Active.
- Stray divider lines, duplicated section headings, and mismatched Edit and Delete buttons were cleaned up across admin screens.
- Profile Replies and Likes tabs could show a private post's content to anyone.
- A media item added to an album from the picker had no source post, so its single-media link bounced to the Media tab instead of the post.
- A feed card was left behind after its source media or its event was deleted.
- A profile field could not be created when its name matched an existing one, and renaming a field group from wp-admin did not stick.
- GET /spaces/{id} now returns the viewer's membership block, and provisioning a space forum surfaces the Discussions tab.
- The People to Follow widget overlapped names, and several wp-admin toolbars and row-action menus were misaligned.
Dev
- App-facing REST timestamps carry a UTC ISO *_gmt sibling via one dispatch seam, filterable per namespace.
- The members directory query is prepared in the model instead of the template.
Compat
- Ships in lockstep with BuddyNext Pro 1.0.9. Install and test both together.
New 5 Improve 6 Fix 12 Security 4 Dev 2 Compat 1
New
- Report media and block its uploader directly from the media lightbox. Reports go to the media moderation queue.
- Manage the header account dropdown from Settings - Navigation: hide, rename, reorder, and add your own links.
- Reorder the mobile bottom navigation tabs by drag and drop. The centre Create button stays centred.
- Reschedule a scheduled post. Editing it now lets you move its date instead of deleting and reposting.
- wp buddynext qa-fixtures generates deterministic edge-case and scale data for testing.
Improve
- Scheduling now reads and writes in the site's timezone (Settings - General), and the control names the zone.
- "Require approval to join" is shown only on Open spaces, where it has an effect. Private and secret spaces explain their own join rules.
- Search, directories, connections and the activity feed are indexed and paginated for large communities.
- Outbound webhooks deliver one job per endpoint instead of one long blocking run.
- Disabling an integration now removes its content from search instead of leaving it indexed.
- Deleting a custom reaction no longer locks the reactions table.
Fix
- A member at the hourly post limit could not edit any of their existing posts. Content rules still apply to edits.
- Publish Now published at the time the post was composed rather than the moment you pressed it.
- A published post could be pulled back out of the feed by rescheduling it.
- The profile REST payload still returned a full date of birth when the field was set to show only an age or a year.
- Nobody could register through the web signup form on a default install.
- The Integrations tab reported "Changes saved successfully" when it had saved nothing.
- Editing a profile field while its add-on was inactive destroyed the field's type.
- The new-posts pill counted a member's entire backlog and printed an uncapped number.
- The PWA service worker installed, reported active, and did nothing.
- A member whose name contained non-ASCII characters could not be found in search.
- An auto-suspend rule the owner had configured never fired.
- Search reported a total it could not actually return.
Security
- The members directory no longer prints a member's WordPress username on the public "online now" list; it shows the public profile slug instead.
- Deleting the free plugin destroyed the customer's invoices and other paid records.
- An invitation is now bound to the address it was sent to and is no longer usable as a bearer token.
- Hardened the outbound request guard that could abort an entire profile save.
Dev
- The buddynext_safeguard_check filter now receives a $context argument ("create" or "edit") so create-time rules can skip edits.
- The GDPR export is derived from the erasure registry, so a table that is erased is also exported.
Compat
- Ships in lockstep with BuddyNext Pro 1.0.8. Install and test both together.
New 7 Improve 7 Fix 17 Security 1 Dev 2 Compat 1
New
- Private Community lockdown so the whole community can be members-only, with a buddynext_private_community_can_access filter to customise access.
- "Get your community live" first-run setup checklist on the admin dashboard that auto-tracks your setup progress and dismisses when done.
- Two-way discussion sync between the activity feed and Jetonomy forums, propagating edits and deletes both ways.
- Unban control for members banned from a space, so an owner can reverse a ban from the space settings.
- Unpin control on a space's pinned-posts strip.
- Unread direct-message badge on the header Messages icon.
- "Resend verification email" action in the composer when a member's email is not yet verified.
Improve
- The add-field form now sets "Show on registration" directly and explains what each field type does.
- The Skills profile group can now be removed, like the other starter groups.
- The three gamification profile tabs are folded into a single Achievements tab.
- Error toasts stay longer and are dismissible instead of auto-hiding early.
- Space discussion buttons open the new-topic composer directly.
- Members stay on the community front end after login and logout.
- Dark mode now covers native form controls, skill chips, leaderboard badges, and the BuddyX and Reign mode toggle.
Fix
- The delete-group confirmation in the profile-fields admin no longer overlaps the toolbar controls.
- The profile "Edit avatar" and "Edit cover" links now open the matching picker.
- Spaces filter pills no longer shrink or vibrate on hover, verified on BuddyX and Reign.
- Reposting no longer fails silently and single-post comments toggle correctly.
- Private images now display in the media lightbox for viewers allowed to see them.
- The mobile bottom navigation no longer covers Save and Cancel on the Profile Edit and Settings screens.
- Navigation and profile-tab labels now respect the active translation.
- The post pin label no longer reads "Pin to profile" inside a space.
- The gamification "on cooldown" points nag is suppressed; points are awarded silently.
- Turning off the desktop sidebar rail no longer leaves an empty column on hub pages; content reflows to full width.
- Member profiles with an empty sidebar no longer show a large blank gap on the right.
- The Spaces directory count now matches the spaces shown instead of also counting hidden sub-spaces.
- Profile action menus, the Share popover, and the Block and Report dialogs now close when you click outside them.
- The "Remove Demo Data" button stays readable on hover instead of turning blank.
- The media lightbox comment box now matches the BuddyNext style and centres its empty state instead of inheriting the theme's fonts and leaving a blank gap.
- Linking an existing discussion in a space's settings now shows an error if the search request fails, instead of silently returning no results.
- The License activation screen loads its styles and scripts correctly on live hosts with a symlinked or non-standard document root, instead of 404ing its assets.
Security
- Media lightbox actions are gated to logged-in viewers.
Dev
- New buddynext_redirect_url filter for login and logout redirect control.
- Notification and PageRouter audit fixes: removed dead code and corrected dependency wiring.
Compat
- Aligned with BuddyNext Pro 1.0.7. Install both updates together.
New 4 Improve 3 Fix 12 Security 1 Dev 1
New
- Media shared to the community links back to the activity it was posted in; a dedicated per-item media page is opt-in under Settings.
- Direct messages gain per-conversation mute, load-older history, and in-thread search.
- Scheduled posts get an hourly catch-up sweep so a missed cron never strands a post.
- The member profile API exposes the Profile Strength checklist, and developers can reshape the checklist for custom profile schemas via a filter.
Improve
- One navigation source powers both the web rail and the native app, so menus stay in sync.
- Visiting Notifications clears the unread badge, and search adds a debounced typeahead with viewer-scoped visibility so members find only spaces they can see.
- Onboarding can seed opt-in sample content from the setup wizard, and companion installs retry per row.
Fix
- Authentication hardening: login rate-limiting, an email-verification gate before first sign-in, and an application-password token flow for the native app.
- Spaces: a deleted space returns a proper 404 instead of a fatal, decline notifications send, and member avatars resolve in the API.
- Followers and following lists respect connection visibility.
- Auto-moderation matches on word boundaries (no false positives on substrings) and covers profiles and direct messages; bulk moderation runs asynchronously with progress.
- Required profile fields are enforced on the full write path, and member-directory visibility honors the configured tier.
- Search suggestions return grouped results and boost exact and prefix name matches.
- Toggle switches keep a visible off-state track, the selected tab keeps its highlight, and modal close buttons keep their hover state under themed buttons.
- Profile completion rewards fire only when the completion percentage actually changes, closing a refresh-to-farm-points loophole and a repeating cooldown notice.
- Hashtag, mention, member, and space links resolve correctly on sites that renamed their community page slugs.
- The profile completion reward milestone now follows the Profile Strength checklist members actually see, so finishing the visible tasks triggers it reliably.
- Reshared posts cap their image and video preview height instead of filling the screen on wide layouts.
- Email unsubscribe now shows a clear confirmation, digest unsubscribes actually stop digest emails, and digest emails carry working links instead of raw placeholders.
Security
- Registration and auth stay self-contained (in-house spam protection and optional TOTP two-factor); no third-party captcha is reintroduced.
Dev
- Outbound webhooks cover membership events with a filterable catalogue, 30-day log retention, auto-disable on repeated failure, and PATCH updates.
New 12 Improve 17 Fix 44 Dev 3 Compat 1
New
- Members can pick their interests from your space categories during onboarding and edit them any time on their profile, where each interest links to the matching spaces in the directory.
- People and space suggestions are now personalized by the interests each member picks, so a brand-new member sees relevant members and spaces to follow and join from their very first session.
- The For You feed ranks posts from spaces in a member's picked interests higher, and Explore suggests popular spaces from those interests instead of only the newest ones.
- Developers can add their own per-space settings that appear on the space management screen, save automatically, and are available over the REST API - the same system the built-in space settings now use.
- Profile sections can be limited to a member type, so each type gets its own profile fields - a restricted section appears only on profiles of members with that type and never on the signup form.
- Every profile field can carry owner-written help text under its name and an example placeholder inside the input, shown on both the profile editor and the signup form.
- A My Spaces view at /spaces/mine/ lists the spaces a member belongs to, with a friendly empty state.
- Direct messages show a live typing indicator while the other person writes.
- A read-only Email Log in the admin lists every message the community has sent, so owners can answer "did that email go out" without guesswork.
- Connection request rows show the requester's headline and how many connections you share.
- Space cards in the directory show how many sub-spaces a space has, counting only the ones the viewer is allowed to see.
- The admin spaces list shows each space's last activity and can sort by it, so you can tell active spaces from quiet ones at a glance.
Improve
- Core profile fields (bio, headline, location) are now protected from accidental deletion, so search and member cards keep working no matter how the profile form is customized.
- The Social Links, Work Experience, and Education profile sections can now be removed when they do not fit your community; profile pages simply hide a section that is gone.
- Deleting a profile field or group that holds member data now shows exactly how many members are affected and asks you to type its name to confirm, and the cleanup runs in small background batches so large sites stay responsive.
- Member lists inside a space and nested sub-spaces stay fast in very large communities.
- Per-space settings no longer load on every page request, keeping large sites fast as the number of spaces grows.
- All email subject lines now follow one consistent style; your own customized subjects are left untouched.
- The admin left navigation and stacked toggle rows now breathe with the same calm rhythm as the rest of the Wbcom admin family.
- License moved to its own entry in the WordPress admin menu, so activating it no longer means hunting through tabs.
- Every guest-facing login and register link routes through the community's branded auth pages instead of the bare WordPress form.
- Members read as offline the moment they log out, and the feed's new-post check stops re-counting when nothing changed.
- Choosing a member type at signup now shows each type's description, not just its name.
- Integration Display is rebuilt as one card per integration with proper switches and descriptions instead of a plain checkbox list.
- The admin works comfortably on iPad: the navigation keeps its sidebar layout instead of pushing content below the fold.
- The Webhooks screen now uses the full panel width and lays event choices out as a comfortable grid.
- Logo fields now use the WordPress media library with a preview and Remove button instead of a bare file input.
- Settings cards fill the panel on every screen with inputs capped at a comfortable reading width, and the Custom CSS box gains syntax highlighting.
- The Navigation screen leads with plain language; developer hook names and the capability field now live behind For developers and Advanced disclosures.
Fix
- Required profile fields are now enforced when saving: an empty value is rejected with a clear message next to the field instead of being silently accepted.
- The setup wizard's profile sections now create the same real field types as a fresh install (URL inputs, date pickers, yes/no checkboxes) instead of plain text boxes with mismatched field names.
- A photo added to the activity composer is shared only when you click Post; removing it or leaving the page no longer publishes it on its own.
- Sharing a photo from the media viewer now opens the full Share menu with Repost and Copy link instead of silently copying the page link.
- Deleting a space now keeps its sub-spaces by moving them to the top level, instead of leaving them stranded under a space that no longer exists.
- The privacy choice on each Work Experience and Education entry is saved and shown correctly after you reload the profile editor.
- The site-wide login redirect setting is now honored, so members land on the page you configured after signing in.
- The after-login, after-logout, and after-onboarding redirect fields on Registration & Login now save, so the destinations you set are actually applied.
- Signing in from a page a caching layer served stale no longer fails with "Cookie check failed" - the form retries with a freshly minted security token instead of re-sending the stale one baked into the cached page.
- The email verification message is now actually sent when you require email verification; it was silently dropped, leaving new members waiting on the "check your inbox" screen forever.
- The Welcome email now uses the template you edit in the admin; it previously sent built-in copy no matter what you wrote.
- The confirmation popup for removing media or deleting an album now explains what you are confirming; it previously opened with empty text.
- Removed a repeated PHP notice about translations loading too early that filled the debug log on WordPress 6.7 and newer.
- The community rail and mobile navigation toggles can now actually be turned off; unchecking them previously saved but silently reverted to on.
- Changing a community page slug now takes effect immediately instead of returning "page not found" until permalinks were re-saved by hand.
- Turning an integration menu off no longer silently disables its sub-tabs behind the scenes when you next save the screen.
- Resetting an email template to default now restores the standard copy immediately; it previously left that email silently disabled until re-saved.
- The media lightbox reaction bar now honors your enabled-reactions choice instead of always showing all six.
- The email digest setting now reflects its real state; a fresh install previously displayed Disabled while digests were actually on.
- The allowed email domains list is now enforced even when spam protection is switched off; it is an access policy, not a spam check.
- The member data-export and account-deletion permissions can now actually be turned off on a fresh install.
- New spaces now honor the default space type chosen in Spaces settings; the create dialog previously always preselected Open.
- Deleting a member now also removes their pending email-verification tokens immediately.
- Values saved in owner-created repeater profile groups now persist; they previously vanished after a success message.
- Removed a PHP warning that fired on profiles whose fields hold multiple values, such as interests.
- BuddyNext emails now always carry your configured sender identity, even when another plugin overrides the site-wide email sender.
- Registration works out of the box: a fresh install now enables WordPress registration to match the plugin's default Open mode.
- New members are searchable immediately in the members directory, messages, and site search, even on hosts where background jobs cannot run.
- The onboarding wizard respects private spaces: joining one now sends a join request instead of granting instant membership, and the wizard only suggests open spaces.
- Demo data files every space under a category so the directory's category filters work from the first click.
- The Integrations screen no longer shows a Save button with nothing to save, drops a duplicate Connected label, and its description now matches the companion grid it shows.
- Keyword rules set to Block now reject a new member's post instead of only holding it for review; a block always outranks a hold.
- Posts using a banned hashtag are now rejected as the setting promises; previously the tag was silently dropped while the post published.
- Blocked domains now also catch links pasted into the post text and subdomains of a blocked entry, not just the attached link field.
- Moderation Log entries now record what was acted on and show correct times on hosts whose database timezone is not UTC.
- Choosing a member type in the directory now filters the member list, and each type count matches the members shown when you open it.
- A private space now shows a single join button instead of two.
- The direct-message typing indicator clears as soon as you stop typing or send, instead of lingering.
- The profile Media tab, albums, and other interactive profile sections load reliably, and album dialogs no longer flash open on page load.
- The "loading more posts" indicator shows a clean loading bar instead of an empty bordered box.
- Dragging a navigation tab by its handle in Settings > Navigation now reorders it; the drag was previously ignored, forcing you to edit each tab's position number by hand.
- On your profile Activity tab, the post box now has a gap below it instead of sitting flush against the first post.
- A secret space's name no longer appears in the browser tab title for members who cannot see the space.
- Sharing works from the profile feed too; the share dialog previously opened only on the main feed.
Dev
- Add-on plugins can register their own community hubs (pages, rules, templates) through the new HubRegistry, and their own template directories via buddynext_template_locations.
- Bundled Action Scheduler updated to 4.0.0.
- Every member-delete path funnels through one canonical purge event, including the WordPress GDPR eraser.
Compat
- Requires PHP 8.1. Pairs with BuddyNext Pro 1.0.4 - install both updates together.
New 4 Improve 9 Fix 13 Dev 1 Compat 1
New
- Members can upload photos and videos from their profile Media tab, choose who can see each upload, and the media appears in the activity feed right away.
- Albums on the profile Media tab: create albums, add and remove media, set a cover, drag to reorder, rename, change privacy, and delete.
- Links you paste into a post or comment now turn into clickable links.
- Object-cache health indicator on the Tools screen so owners can confirm a persistent cache is active.
Improve
- Community pages, the home feed, search, widgets, and polls are cached and free of per-row queries, so they stay fast as membership grows.
- Photo and video previews now generate a fast downscaled thumbnail, so uploads on the Media tab, the feed composer, and direct messages feel instant.
- Online presence reads from an indexed table with object-cache throttling, so the online-members list stays accurate without loading the database.
- Background jobs run through Action Scheduler with automatic retention pruning, keeping scheduled-task tables small.
- Direct-message threads stop polling when the tab is hidden or closed, reducing battery and server load.
- The following count is capped to keep the home feed fast for highly-followed accounts.
- Member-directory results refresh immediately after a block or unblock instead of serving a stale cached list.
- The mobile bottom navigation bar is taller with larger tap targets, and the center Create button opens the composer ready to type.
- Admin settings fields, sidebar icons, and Explore result cards are visually consistent across every screen.
Fix
- The profile display-name field no longer reverts to the login name when you click away, so members can change their name.
- A video without a poster image now shows a generated thumbnail instead of a black tile.
- Posting a poll without a question now shows a prompt to add one, instead of the Post button doing nothing.
- The emoji button in the comment box now lines up with the send button.
- The profile editor no longer warns about unsaved changes after you have already saved.
- If the bundled licensing and update SDK is ever incomplete, the site stays up with a notice instead of a critical error.
- Editing or deleting a comment you do not own returns a clear permission message instead of a server error.
- Ending or dismissing an announcement updates the home feed straight away.
- Type-scoped search for members, spaces, and posts returns results whether the type is named in singular or plural form.
- Appeal decisions and member warnings are now recorded correctly in the moderation audit log.
- The Online Members widget now lists members who are actually online.
- Deleting a space clears its member and ban caches immediately.
- Hardened activity hooks so a third-party listener can no longer trigger a fatal error when a post is created.
Dev
- Removed legacy presence dual-writes, a dead database table, and unused cache methods; per-space settings and custom CSS no longer autoload.
Compat
- Pairs with BuddyNext Pro 1.0.3. Install both updates together.
New 2 Improve 3 Fix 5 Dev 1 Compat 2
New
- The admin left navigation collapses into an accordion that opens the active section and remembers your last open section.
- Delete and Unsend actions in the direct-message menu.
Improve
- BuddyNext adopts the host theme's colour scheme and font family (BuddyX, BuddyX Pro, Reign), so community pages match your theme; header icons follow the theme's header menu colour.
- Sign-up Terms and Privacy links are admin-configurable instead of guessed from slugs.
- Notification rows polished with a system-icon avatar and a clean fallback for unknown types.
Fix
- Hashtag search returns results again, hashtags are indexed for every post type, and hashtag voting registers correctly.
- The favourite toggle in the media lightbox now responds.
- Removed the blank gap below the footer on BuddyX and BuddyX Pro auth pages, and fixed the header chrome layout inside the BuddyX header.
- Host-theme button fill no longer leaks into message action buttons.
- A deleted user's profile values and bookmarks are now purged.
Dev
- Composer is no longer required at runtime (hand-written autoloader, vendor is dev-only).
Compat
- Aligned with the WordPress 6.9+ and 7.0 Abilities API (ability category plus execute and permission callbacks).
- Pairs with BuddyNext Pro 1.0.2. Install both updates together.
New 2 Improve 1 Fix 2 Dev 1 Compat 1
New
- Media shared from the WPMediaVerse upload surface now appears in the community activity feed. Images post inline; audio and video link to the media page. A deferred, attached-to-post guard prevents duplicating media that was posted through the BuddyNext composer.
- Link posts to supported providers (YouTube, Vimeo, and other oEmbed sources) now render an embedded player instead of a plain link card.
Improve
- Link previews use the provider's real oEmbed title instead of a placeholder such as "- YouTube".
Fix
- Resharing a photo or a video/link post now previews the original's image or thumbnail instead of rendering an empty quote.
- The companion installer retries a transient store timeout once, so onboarding no longer fails to install a companion when the store is briefly slow to respond.
Dev
- The admin hub name and logo resolve through the buddynext_brand_name and buddynext_brand_logo_url filters, and a shared logo-upload helper backs both Appearance and Pro white-label.
Compat
- Pairs with BuddyNext Pro 1.0.1. Install both together.
New 7 Compat 1
New
- Activity feed with posts, polls, reactions, threaded comments, bookmarks, hashtags, and site-wide announcements.
- Spaces: public, private, and hidden communities with membership, roles, and per-space feeds.
- Member profiles with customizable field groups, a social graph (follows and connections), and a member directory.
- Direct messaging with media, a conversation info panel with shared media and safety actions, and a full-bleed media lightbox.
- Moderation suite: reporting, a review queue, strikes, suspensions, and appeals backed by an immutable audit log.
- Onboarding wizard, gamification achievements, notifications, and a Progressive Web App with branded install icons.
- Full translation readiness: every template, admin label, and JavaScript module is internationalized with a complete buddynext.pot.
Compat
- Pairs with BuddyNext Pro 1.0.0. Direct messaging and media are powered by the WPMediaVerse companion plugin.
New 2 Improve 5 Fix 4 Security 1 Compat 1
New
- Membership enforcement seams (entitlement gates) that BuddyNext Pro plans hook into.
- Custom navigation tabs can now be deleted.
Improve
- Moderation: full audit trail; the admin queue now surfaces action failures instead of false-success notices.
- Email: every seeded template is shown in the editor; Preview Text is applied as the inbox preheader; sends are logged.
- Navigation: Messages and integration-bridge options are gated on their required plugin being active.
- Appearance logo and default theme reflect on the front end; pin/unpin updates the feed without a reload.
- Settings: hide Connect for unconfigured social providers; gate Direct Messaging on WPMediaVerse.
Fix
- Duplicate transactional emails on moderation actions (2-3 copies) reduced to one.
- Social-login verified email is now recognized (meta key mismatch).
- Isolation mu-plugin no longer strips BuddyNext Pro on front-end routes, and matches route segments exactly so pages like /membership/ are not mis-isolated.
- Allow assigning an existing page whose slug matches a hub.
Security
- Masked secret input fields for admin credentials.
Compat
- Pairs with BuddyNext Pro 0.6.0-beta1. Install both together.