Standard WordPress forums slow down once the community passes a few thousand topics. Jetonomy stores forum data in its own database so search, threading, and feeds stay fast at any size.
Moving a topic now lists every space you can move into, instead of stopping at the first 20. On sites with more than 20 spaces, common after a bbPress import where each forum becomes a space, the rest were silently missing from the dialog and could not be chosen.
The move dialog now lists only spaces you are allowed to move topics into, instead of offering targets the move would then refuse.
Dev
Regression guards are now proven to fail when their bug returns. Three guards shipped in 1.9.5 that stayed green against the exact defect they were written for, so a bug could look tested when nothing checked it.
Added npm run check:guards, which reintroduces each known bug and requires the matching guard to go red.
Test runs no longer count skipped checks as passes. A site where fixtures could not be created previously reported a fully green suite while asserting almost nothing.
Added checks that the community sitemap serves XML rather than only returning a 200, and that its handler claims the URL ahead of any SEO plugin.
Continuous integration can now serve URLs that carry a file extension, so sitemap and feed routes are actually exercised instead of silently skipped.
Compat
Aligned with Jetonomy Pro 1.9.6. Install both updates together.
v1.9.5
September 3, 2026
Improve 2 Fix 8 Dev 2 Compat 1
Improve
The jetonomy_space_members shortcode now accepts a space slug, not only a numeric ID that no admin screen ever displayed.
Misconfigured shortcodes now explain what to change instead of rendering nothing. The message is shown only to users who can edit posts, so visitors see no change.
Fix
The Categories admin page no longer fails with a fatal error. A backslash-escaped format specifier made sprintf() throw on every 1.9.4 site, whether or not any categories existed.
The community sitemap no longer returns 404 on sites running Yoast SEO, Rank Math or All in One SEO. Those plugins claim a broad sitemap URL that took precedence over ours, so spaces and posts were missing from search engines.
Updating Jetonomy and Jetonomy Pro together no longer drops every Pro route. Private Messaging and other Pro pages silently returned a redirect until permalinks were re-saved, with no error anywhere.
A shortcode given an ID that does not exist now says so instead of showing an empty result, so a typo is no longer indistinguishable from an empty space.
The post compose form no longer renders for a space that does not exist, which allowed a topic to be aimed at nothing.
Attachment records are no longer orphaned when a post or reply is deleted outside the REST API, which left rows pointing at content that no longer exists.
Updating only custom fields on a post through the REST API now works. It previously returned "No fields provided for update" and discarded the value.
Renamed Topic, Reply and Member labels now apply to the remaining interface messages, including the moderator confirmation dialogs that still used the built-in words.
Dev
Added a format-string check to the build so an invalid sprintf specifier fails CI instead of reaching a page. Run it with npm run check:format-strings.
The release battery now exercises an activate, deactivate and reactivate cycle and asserts that no rewrite rule disappears across it.
Compat
Aligned with Jetonomy Pro 1.9.5. Install both updates together.
v1.9.4
August 31, 2026
New 6 Improve 7 Fix 15 Security 5 Dev 6
New
Owners can now rename Topic, Reply, Member and Category throughout the community, the same way Space could already be renamed. Set the labels under Settings, or override per site with the jetonomy_label filter.
Paying members are now added to the roster of every space their plan grants, so they appear in the Members list and count toward members-only posting. Row provenance means a lapsed plan only ever removes rows it added, never someone who joined the space directly.
Members can be identified by display name, @handle, or both, chosen under Settings > General > Member Names. Display names are not unique in WordPress; the handle always is.
Space admins can now delete or archive-and-transfer their own space from the frontend, not only from wp-admin.
Tags can now be created, renamed and deleted through the REST API, so tag management works from the app and from integrations instead of only inside wp-admin.
Space access rules can now be listed, created and deleted through the REST API, so membership gating can be configured from the app or an integration rather than only in wp-admin.
Improve
Members who share a display name are now told apart by their unique @handle wherever names appear.
The community home now tells members where posting happens instead of reading as a dead end. Reword or hide the hint with the jetonomy_home_member_hint filter.
Space directory cards now name the space owner.
A member who hits a posting rate limit now sees how many they can post and roughly when they can post again, instead of "try again later."
The moderation Flags queue now shows what was reported and links to it. Previously it showed only an internal id, so a moderator had to go find the content before deciding.
Community home and category pages now page through spaces instead of rendering every one of them, so a large directory stays fast. Set the page size with the jetonomy_spaces_per_page filter.
Faster threaded replies on busy topics, and a faster ban check on every anonymous submission.
Fix
The Settings link in notifications now scrolls to the notification preferences section instead of jumping to the top of the page, including after in-app navigation.
Jetonomy's own profile links (edit profile, notification settings, badges, digest) now stay on the community profile even when member profiles are pointed at another profile plugin.
Notifications that have no actor now read as whole sentences instead of "Someone earned a badge" and similar broken phrasing.
Icon-only action buttons on posts and replies now meet the 44px touch-target size on phones.
New topics created directly through the model or the agent interface now always take their space's type, so they no longer get the wrong type and search-engine markup after creation.
Sites upgrading from 1.9.2 never received the 1.9.3 content fix that matches a topic's type to the space holding it, so Q&A spaces could still publish the wrong search-engine markup. The fix now applies on upgrade.
The space edit form in wp-admin now has the Display order field it was missing, and the moderation queue no longer runs a separate query per row.
Posts held for approval now appear in the frontend moderation queue.
Two moderators resolving the same report at the same time no longer overwrite each other. The second now sees the report as already handled instead of silently replacing who resolved it.
The Role Capability Mapping table on Settings > Permissions was unreadable on phones, with role names clipped to their last few letters.
An expanded admin table row no longer overlaps its own cells between 482px and 782px wide.
Custom text for the "idea roadmap status changed" email is now saved. It was silently discarded on every save.
The dashboard no longer tells you to run the setup wizard when your community already has spaces and posts, which affected every site whose content arrived by import or migration.
Renaming Spaces in Settings now also renames it in the admin menu, instead of the menu contradicting the page.
Listing spaces by category through the AI-agent interface is now limited like every other listing, instead of loading the whole category.
Security
A private reply could be read from a topic's cache by another viewer, including a logged-out visitor, because the cached thread was not keyed per viewer. Threads are now cached per viewer, so one member's permissions never decide what another sees.
The activity log is no longer readable through the AI-agent interface by members who cannot open it in wp-admin. It now requires the same permission on both.
A moderator can no longer restrict an administrator or another moderator. The moderation screen enforced this only through the REST API, so the screen's own save path let an editor lock the site owner out of their account.
Joining a space through the WordPress Abilities API now honours the space's join setting. Hidden and invite-only spaces could be joined directly, which exposed every topic inside them.
Replies arriving by email are now subject to the same rules as replies posted on the site. A banned member could still reply by email, and emailed replies could land on closed topics and in archived spaces.
Dev
REST user and author payloads now publish can_ban, can_block_author and any active restriction, so app clients do not offer an action that will fail.
Corrected the plugin manifest version and provenance stamps, which had lagged two releases behind the shipping version.
Consolidated the QA gate so the expected `wp jetonomy qa-actions` total is stated in one place instead of four conflicting ones.
Fixed the QA smoke config, which pointed at a site path that does not exist.
Corrected table, model, controller and template counts in the contributor documentation.
Removed dead documentation links and a reference to a plans directory that was never part of this project.
v1.9.3
August 1, 2026
New 5 Improve 3 Fix 13 Security 1 Dev 6 Compat 1
New
Removing a space now offers Archive or Delete permanently as separate actions, and archiving keeps every topic, reply and vote.
Permanently deleting a space asks you to type the space name first, so an irreversible action cannot be triggered by a single click.
Setting to let space admins permanently delete their own space from the community pages, off by default. In the admin area, permanent deletion follows the Manage all spaces capability.
Edit Profile collects a first name, last name and nickname, and members choose which combination to display publicly.
Spaces can be dragged into a deliberate order within a category, instead of always sorting alphabetically.
Improve
Permanently deleting a large space now runs in the background in batches, so it no longer times out.
The Revisions and Activity admin screens now collapse correctly on a phone instead of squeezing a column to a single letter per line.
Member post and reply counts are corrected automatically when a space is permanently deleted.
Fix
@mentions now resolve on a member's handle, so members whose account was imported or created from an email address are notified instead of silently missed.
Deleting a space left its topics, replies and member records behind in the database; both removal actions now handle a space's contents properly, and earlier damage is cleaned up automatically.
Deleting the account of a member who owned a space no longer leaves that space with nobody able to manage it.
Dragging to reorder categories on page two no longer scrambles the order of page one.
A Q&A or Ideas space converted from another type now produces the right search-engine markup for its posts.
Trust level names are now the same on the Users screen, the promotion email and the Permissions tab.
The bbPress and wpForo importers no longer offer a dry run they cannot honour, and the bbPress dry run no longer reports an error for every topic and reply.
The report control on a post now stays visible after a page refresh.
Invite link rows sit on one line again, and the duplicate trust level pill is gone from the profile header.
The Archive and Delete permanently dialogs in the admin area opened as a blank grey panel with no readable message, no visible input and no usable buttons; every Jetonomy admin screen now loads the shared style layer those dialogs depend on.
Dialog buttons on a phone are now full height, so the last tap before an irreversible delete is not the smallest target on the screen.
Permanently deleting a space reported success and removed nothing on sites where background jobs do not run; the space and its content are now deleted straight away, with only very large spaces continuing in the background.
The Deleting spaces setting could not be switched on. It was never saved, so the feature behind it stayed off however many times it was ticked.
Security
Members can no longer publish under a reserved name such as Administrator, Support or your site's name, or take another member's exact name.
Dev
DELETE /spaces/{id} accepts mode=transfer (default) or mode=purge, and POST/PATCH /spaces accept sort_order.
wp jetonomy space delete accepts --mode=transfer|purge and prompts before destroying content.
New filters jetonomy_user_display_name, jetonomy_user_handle, jetonomy_display_name_choices and jetonomy_reserved_display_names control how members are named and identified.
New filter jetonomy_schema lets an extension adjust a page's primary schema.org entity instead of emitting a competing one.
New actions jetonomy_space_transferred and jetonomy_space_purged fire when a space changes hands or is destroyed.
Vote and flag state for the current viewer is published on the API, so clients stop inferring it.
Compat
Aligned with Jetonomy Pro 1.9.3. Install both updates together.
v1.9.2
August 1, 2026
New 1 Fix 3 Dev 3 Compat 1
New
A member can leave a space from the front end, the same place they joined it, instead of only being able to join.
Fix
A member admitted to a space by a read-only access rule was shown Vote controls, a New Topic button, the empty-space call to action and a reply box, then refused by the server on use. Each control now appears only when the member is actually allowed to use it, so a read-only member sees the content without the dead buttons.
A single topic in a private space now opens for a member admitted by an access rule, matching what the server allows.
Tag, space and author listings open again when there is no search text, instead of returning nothing.
Dev
Member and leaderboard payloads carry author_last_seen_at so a client can show the online dot under an avatar.
New AccessRule::spaces_with_level_prefix() lists every space gated on a membership-level rule, so an integration can show the spaces a member can reach by access rather than only those they have formally joined.
New Space::unique_slug() is the one rule for space-slug uniqueness, shared by every path that creates a space.
Compat
Aligned with Jetonomy Pro 1.9.2. Install both updates together.
v1.9.1
August 1, 2026
Improve 7 Fix 4 Security 1 Dev 3 Compat 1
Improve
Busy communities do far less database work per page. Topic lists, sidebars, notification counts, the category tree, feeds and leaderboards are cached, and the hottest screens fetch their data in batches instead of one query per row.
A long topic loads only the replies on the page you are reading rather than the whole thread, so a 500-reply topic opens as quickly as a short one.
A space roadmap loads each column on its own instead of every idea at once.
New database indexes speed up topic lists, member search and access rules on large sites.
A member whose WordPress role comes from another plugin, such as an LMS student or a membership tier, can now take part in a space they have been added to or admitted to by a rule. Before this they could open the space and do nothing in it.
The Access Rules screen says who each rule type catches, gives each value box its own example instead of one generic hint, and groups membership levels under what they are.
Rules no longer imply they restrict people. The screen states plainly that a rule lets people in, and only visibility and join policy hold anyone back.
Fix
Someone admitted to a space by an access rule rather than by joining could be let in by the browser and refused by the API for the same space.
Space and topic counts could drift after merging topics or moving content between spaces.
A partly installed licence library no longer white-screens the site. The plugin loads and reports the problem instead.
The sidebar no longer writes a PHP warning to the error log on every page outside a space, including the community home, search, leaderboard, notifications and member profiles.
Security
Member suggestions could be searched by email address, so a member could confirm whether an address had an account. Suggestions now match on username and display name only.
Dev
One serializer produces post and space payloads for every endpoint, so a feed, a search result and a single read return the same shape.
New GET /replies/{id}. List endpoints share one pagination contract, and post and reply payloads carry author_last_seen_at.
Membership adapters may return optional kind and note keys from get_all_levels() to group and describe their levels in the Access Rules picker. Adapters that do not return them are unaffected.
Compat
Aligned with Jetonomy Pro 1.9.1. Install both updates together.
v1.9.0
August 1, 2026
New 4 Improve 7 Fix 11 Security 1 Dev 6 Compat 1
New
Gate a space on a membership plan, and people holding that plan get in automatically. Access starts when the plan becomes active and ends when it lapses, with nothing to sync by hand.
A visitor who cannot enter a paid space is told which plan includes it and given a link to buy it, instead of a generic "this space is private".
Connect the mobile app to your account: approve the connection once in the browser and the app gets its own access key for that account, visible and revocable any time from your profile.
Keyboard shortcuts l (upvote the focused post) and r (reply to it), which the FAQ has always documented.
Improve
The buy link on a gated space works with Paid Memberships Pro, MemberPress, WooCommerce Memberships, Restrict Content Pro, LearnDash, Tutor LMS, LifterLMS, Sensei, MasterStudy and Learnomy, sending people to the right plan or course. Levels that are granted rather than sold, such as a WordPress role or a CRM tag, state the requirement without a link.
The Access Rules screen explains what each access level unlocks, and reads your rule back in plain English as you build it.
An access rule now uses a single Access level rather than two settings that could contradict each other, and defaults to Participate.
Warn on the Access Rules screen when a rule cannot restrict anything, because the space is public or anyone can join it.
Admin screens are usable down to 320px, and touch targets meet 44px on phones and tablets.
Dropdown menus in wp-admin match the rest of the interface instead of using the operating system's own styling, where the browser supports it.
Every message the plugin shows can be translated, including sign-in, sign-up and password-reset feedback, and admin list statuses.
Fix
Search-as-you-type returns results again, and clicking one opens that topic.
Pressing Enter on a keyboard-focused row opens it.
The emoji picker can be opened from the composer toolbar.
Paragraph spacing is kept on topics and replies written in the composer.
The Conversations screen explains that messaging is dormant when another plugin handles direct messages, instead of showing a permissions error.
Closing the email preview with Escape returns focus to the button that opened it.
Activity Log and Revisions rows identify themselves on a phone rather than showing only a date or a type.
Roadmap columns no longer use the same colour for Planned and In Progress.
The "Read the full guide" link on the Users screen resolves.
Filled buttons rendered black text on ordinary brand colours, so New Topic, New Post and Join read wrong on a plain blue. The auto-contrast threshold moved to 0.7, and white now stays on every normal brand blue, green, purple and red.
Actions in a space header could not share a row with the owner's Edit space button, so each one dropped onto a line of its own. The header is a wrapping row now, centred on mobile.
Security
An access rule could grant more than it advertised: a rule set to "Read" could record people as space admins, and running Sync Members then gave them moderation powers, including deleting other people's posts. The role a rule assigns is now capped by what the rule allows, and a membership rule can never make somebody a moderator. Rules already saved on your site are covered; no action is needed.
Dev
New filters: jetonomy_compose_label (the create verb per space type) and jetonomy_membership_upgrade_url (where a plan is bought). Membership adapters may implement get_level_url() to link a plan directly.
New filters for app connection: jetonomy_app_connect_schemes (which app URL schemes may receive a credential) and jetonomy_app_connect_bridge (which plugin owns the connect screen when several are installed). Add a scheme only for an app you ship, never a wildcard.
New AccessRule::spaces_for_level() answers which spaces a membership level opens, replacing thirteen hand-written copies of the same query living inside individual adapters.
New AccessRule::member_spaces_for_level_prefix() lists the gated spaces one member can reach, for products that want to surface them in their own account area.
New space_permalink() builds a space URL, so an integration in another plugin stops composing the path by hand.
New index rule_lookup (rule_type, rule_value) on jt_access_rules, because both lookups above were full table scans and now run on page views rather than only during provisioning. Schema milestone 1.9.1 covers sites already on 1.9.0; fresh installs get the index from CREATE TABLE.
Compat
Removed a finfo_close() call that PHP 8.4 deprecates, so upload checks no longer emit a notice on 8.4.
v1.8.0
July 1, 2026
New 4 Improve 7 Fix 16 Security 2 Dev 2
New
Import attachments and media from wpForo, bbPress, and Asgaros, not just the posts and replies.
Block another member, and report while blocking, from the mobile app and the REST API.
Delete your own account from the app (DELETE /users/me).
Generate and revoke space invite links from the front end, so an invite-only space can be run without wp-admin.
Improve
Attachments are shown and served by the free plugin, so a site without Pro keeps displaying its files instead of hiding them.
An import that cannot recover a file now lists which files were skipped instead of reporting a silent success.
Object cache is invalidated the moment you change a space, profile, or membership, so counts and visibility are never a few minutes stale.
The subscriptions API returns the title and link of what you are subscribed to, and no longer lists content that has been deleted.
Moderation queue items and flags name the author and reporter, honour the status filter, and page correctly on both the site-wide and per-space screens.
Hidden spaces can be chosen from the front-end space forms and stay hidden when you save.
Opening the notification bell and building the moderation queue no longer run extra queries per row.
Fix
Every Jetonomy page sets its own title and canonical again, instead of inheriting an unrelated page's SEO tags when another SEO plugin is active.
A topic's SEO title uses the title you set rather than its slug, and the title-format settings take effect.
Profile links in the navigation and in @mentions respect the jetonomy_profile_url filter.
Saving a hidden space from the front end no longer silently republishes it as public.
The mobile app and the website agree on which spaces exist for a given member.
The accent colour you pick in Appearance is applied instead of being discarded.
The "Create free account" and login buttons stay readable on every theme, including light brand colours.
The login card follows dark mode instead of rendering white on a dark page.
A reply notification takes you to that reply on the right page, instead of the top of the topic.
A blocked member's posts and replies are hidden everywhere, including the browser tab title, without dropping the innocent replies nested beneath them.
A deleted topic is no longer served to people who should not see it.
wpForo and bbPress imports keep the forum hierarchy, count progress correctly, and run in batches instead of one request that times out on large forums.
Migrated inline images and attachments are registered into the media library, so deleting the old forum's uploads folder can no longer break them.
One-click email unsubscribe links save the change; they reported success but the preference never persisted.
"Small" buttons render at their intended size, and the moderation Approve control renders as a button.
A custom accent colour stays readable on every accent-backed surface (buttons, the follow pill, level tags, avatar initials, and the new-replies banner); a light accent no longer leaves white text invisible, in every browser.
Security
A moderator could globally ban the site administrator; banning an admin or a fellow moderator is now refused.
AI moderation logs are removed when a member is deleted or their data erased.
Dev
Post and reply REST payloads carry an attachments array (id, url, thumbnail, mime, name, size, type) whether or not Pro is active.
New WP-CLI commands "wp jetonomy privacy scan" and "wp jetonomy privacy purge-orphans" clear personal data left by accounts deleted before 1.7.1.
v1.7.0
July 1, 2026
New 2 Fix 7 Security 1 Dev 1 Compat 1
New
Members with no uploaded avatar now get a generated initials avatar instead of a blank placeholder, on the web and in any REST client.
User records returned by the REST API now include an avatar_display field, so a native app renders the same avatar the site does.
Fix
The profile-header avatar now uses the same resolver as every other avatar, so a member's initials fallback no longer disappears on their own profile.
BuddyPress activity-reply notifications now open the forum topic being replied to, instead of the activity feed.
Badge notifications now deep-link to the badges section of the recipient's profile, instead of the top of the profile.
Post and reply body text now share one alignment across every content type, so a reply no longer sits offset from the post it answers.
Vertical spacing above and below the post hashtag row is now balanced, instead of crowding the tags against the post body.
Compose toolbar labels, block-editor scripts, the threaded-reply toggle, and the remaining front-end script strings are now translatable.
Composer and form inputs now show a single focus ring instead of a doubled outline.
Security
Member media uploads are now validated against an explicit file-type allow-list with a content check, replacing behaviour where the accepted types depended on the member's role.
Dev
Added the author-display resolver, the is_anonymous columns, and the upload allow-list and max-size filters that power Pro Anonymous Posting and File Attachments.
Compat
Aligned with Jetonomy Pro 1.7.0. Install both updates together.
WBComDesigns is amazing!
WBComDesigns is amazing. The WP plugins and themes are of top notch quality with lots of features and updated very frequently. Supports are very responsive and helpful. I use Reign with TutorLMS, and the experience is surprisingly smooth.…
Hoang Phan·VN·
The job well done!
The job well done, well in time - Thanks so much Anmbiya and team!
Happy Client·ZA·
WBCOM Designs is Amazing!
WBCOM Designs has constantly updated and supported their plugins and themes. Recently the new BuddyNext project is Amazing! - and the new line of addons like Mediaverse, Jetonomy, Mediashield, and Listora.. are likewise Amazing! - and very…
Edward S.·US·
High quality WordPress plugins and themes
We’ve hosted a number of Wbcom Designs clients on Levamo, and our experience with their products has been very positive. Their plugins and themes are well built, their support has been reliable, and they seem to be very innovative and…
Michael Eisenwasser·US·
I have worked with Wbcom Designs on…
I have worked with Wbcom Designs on several custom development requests for my WordPress platform, and my experience has been excellent.
christian nicolas·BJ·
Love this company
Love this company. Loved the REIGN product. They were there the entire time helping me set things up; and when things went wrong? They were quick to take action and help find a solution.
Fable Fortitude·CA·
Seriously, one of the best "software tech experiences" I've ever had!
After 16 years of buying WordPress themes and plugins, I know exactly what bad support looks like and Wbcom Designs is the polar opposite. My setup was a nightmare: multiple tools, deep integrations, custom configurations that required…
Duston McGroarty·US·
I was using an excellent plugin created…
I was using an excellent plugin created by Wbcom Designs and had both an error and discovered a slight bug in one aspect of the plugin. After creating a support ticket - I got a super-quick response and discovered the error was on my part…
Edward Bonthrone·US·
Excellent Theme, Powerful Plugins and Outstanding Support
I am using the REIGN theme and several plugins from Wbcom Designs on my website. The theme is beautifully designed, and the plugins are user-friendly. Everything works smoothly, and the features are perfect for building professional…