16 min read
Jetonomy and Paid Memberships Pro: Gating Your Community by Membership Level
Most paid communities share the same requirement: the discussion forum has to respect who has paid. A member on the Premium plan should reach the Premium space; a visitor who has not subscribed should not. Wiring that up by hand is fragile, and it breaks the moment a subscription renews or lapses. The result is often a support queue full of “I paid but I cannot get in” messages, or the opposite problem, where cancelled members keep access they no longer pay for.
Jetonomy handles this natively. The connection to Paid Memberships Pro (PMPro) ships in the free version of Jetonomy, so gating a forum by membership level requires no add-on and no custom code. This article explains how the PMPro integration works in practice, the wider set of membership, commerce, and course platforms Jetonomy supports the same way, how access stays correct as subscriptions change, and how to populate a new community quickly rather than launching into an empty forum.
What Jetonomy is, in one paragraph
Jetonomy is a community and discussion plugin for WordPress built around a concept called a space. A space is the equivalent of a forum, a board, or a topic area. Members open topics, reply, vote, and react inside a space, and an administrator organizes spaces into categories. What sets Jetonomy apart under the hood is that it stores its data in its own optimized database tables rather than mapping every topic and reply onto standard WordPress posts. That single decision is the reason it stays responsive on large forums and keeps administration screens stable as a community grows into thousands of discussions.
Access control sits on top of the space. Each space carries a small set of rules that decide who may enter and what they may do once inside. Those rules are where every membership integration, including Paid Memberships Pro, plugs in.
The core idea: Access Rules
Before looking at PMPro specifically, it helps to understand the mechanism every integration shares. Each space has an Access Rules tab. A rule is made up of three parts:
- A rule type. This is the source of truth for the decision: a WordPress role, a capability, a trust level, or a membership or course from an integrated plugin.
- A value. For a membership rule, this is the specific level, product, or course that unlocks the space.
- An access level. This is what a matched person may do once admitted.
The access level has three settings, and understanding them prevents most configuration mistakes:
- Read lets people in to read. On a public space that anyone may join, a signed-in member can still take part, because a rule admits rather than restricts, and only the space visibility and join policy hold anyone back.
- Participate grants read, plus post, reply, vote, and report. This is the usual choice for a paid plan, and it is the setting most membership sites want.
- Full adds the ability to edit other people’s posts and to close and pin topics, but only for people whose WordPress role already allows moderation. For an ordinary member it behaves exactly like Participate.
A useful rule to remember: a membership rule means “everyone holding this plan,” so it grants participation but never hands out moderation on its own. Moderation always comes from a person’s WordPress role, which keeps it a deliberate, visible decision rather than a side effect of a paywall.
Multiple rules can be stacked on a single space. Access is granted when a member matches any one of them, which is what makes it possible to open a space to, for example, both a paid membership level and a specific course enrollment at the same time.
How the Paid Memberships Pro integration works
When both plugins are active, Jetonomy detects PMPro automatically. The PMPro adapter registers itself, and PMPro levels appear as a rule type inside every space. There is no separate connection screen and no API key to paste. If PMPro is activated after Jetonomy is already running, a single save on the Jetonomy settings page is enough to trigger detection.
Setting up a gate then takes three steps:
- Open the space you want to protect and go to its Access Rules tab.
- Set the rule type to PMPro and choose the membership level that should unlock the space. The level dropdown is populated directly from the levels you have created in PMPro, so it always matches your live configuration.
- Choose the access level. Participate is the standard choice for a paid plan.
Click Add Rule, and the rule appears in the table beneath the form. Members who hold the selected level gain access immediately, on their next page load, with no further action required from an administrator.
If a member holds more than one PMPro level, Jetonomy evaluates every rule on the space. Access persists as long as any single rule still matches an active level, which is exactly the behavior a site with overlapping plans needs.
Access follows the subscription
The most important design decision in the integration is that access is evaluated live, at the moment a member opens the space, against the levels they hold right then. There is nothing to synchronize on a schedule, nothing to reconcile, and nothing to undo by hand.
Two events matter, and Jetonomy handles both automatically:
- On activation. When a plan becomes active, the member can open the gated space on their next page load. A developer hook,
jetonomy_membership_activated, fires at the same moment, so any connected system can respond. - On cancellation or expiry. When a plan is cancelled or lapses, access is removed just as immediately. The companion hook,
jetonomy_membership_deactivated, fires. PMPro has several ways a membership can end, including expiry, an administrator cancellation, and a non-renewing plan reaching its term. Jetonomy listens for all of them through PMPro’s own level-change action, so there is no cancellation state that slips through.
A visitor who does not hold the required level sees the space in a locked state, along with a button that leads directly to the correct PMPro checkout for the plan that unlocks it. The member lands on the right plan already selected rather than on a pricing table they have to reinterpret. That small detail measurably reduces the number of people who abandon at the checkout because they picked the wrong option.
Their existing posts and replies are never deleted when a level lapses. Access is controlled independently of content, so a returning subscriber picks up exactly where they left off, with their history intact.
Access versus the roster
There is one distinction worth calling out because it surprises some administrators. Being admitted by a rule is not the same as being listed on the space’s Members roster. Access is always correct on its own: the gate reads the rules on every visit. The Members list and the member count, however, are a separate record. If you also want rule-admitted people to appear on the roster, a Sync Members button materializes those rows on demand. This separation is deliberate. It keeps the roster a meaningful, curated list rather than a mirror of every subscription event, and it means a lapsed member disappears from access instantly without leaving the roster churning in the background.
Paid Memberships Pro is one option among many
PMPro is a common request, but it is one of a wider set of access controls that all use the same Access Rules interface. The setup is identical across every one of them: choose the integration, choose the level or product or course, and set the access level. That uniformity is the point. A site owner learns the pattern once and applies it everywhere.
Membership platforms. Alongside Paid Memberships Pro, Jetonomy gates spaces by MemberPress and Restrict Content Pro. Each exposes its levels or memberships to the Access Rules dropdown exactly the way PMPro does.
Commerce. WooCommerce product purchases and subscriptions can unlock a space. This suits sites that sell access as a product rather than as a recurring membership, or that want a one-time purchase to open a permanent space.
Marketing automation. WP Fusion tags can gate a space, which is a powerful option because WP Fusion itself connects to a broad range of CRMs and membership tools. A tag applied anywhere in that ecosystem can control forum access without Jetonomy needing to integrate with each of those systems directly.
Access management. SureMembers access groups and standard WordPress roles both work as rule types, which covers sites that manage entitlements without a dedicated membership plugin at all.
Learning platforms. This is where many community sites find the most value. Jetonomy gates spaces by enrollment in LearnDash, LifterLMS, TutorLMS, Sensei, MasterStudy, and Learnomy courses. A course cohort can have its own private discussion space that opens the moment a student enrolls and closes when their access ends. This is the same “spaces” model that runs across several products in the wider suite, and it is worth understanding how they fit together if you run more than one; our overview of why BuddyNext, Jetonomy, and Learnomy all share the concept of spaces walks through running them side by side.
A worked example
Consider a site that sells two membership tiers and a paid course. The owner wants three separate discussion areas:
- A general members space open to both the Basic and Premium plans.
- A Premium lounge open only to Premium.
- A course cohort space open to anyone enrolled in the course, regardless of membership tier.
With Jetonomy this is three spaces and four rules, and none of it requires code:
- On the general members space, add two membership rules, one for the Basic PMPro level and one for the Premium level, both set to Participate. Either plan admits.
- On the Premium lounge, add a single rule for the Premium level.
- On the course cohort space, add a rule of the LMS type pointing at the course.
A member who upgrades from Basic to Premium gains the lounge automatically. A student who finishes and loses course access drops out of the cohort space on their next visit. The owner never touches a roster to make any of this happen.
Space visibility works alongside access
Access rules decide who may take part. Visibility decides what a non-member can see in the first place, and the two combine:
| Space visibility | What a non-member sees |
|---|---|
| Public | The space is listed and its content is readable, but posting is locked. |
| Private | The space is listed with a lock icon, and its content is hidden. |
| Hidden | The space is not listed at all. |
A public gated space is a common and effective choice for a paid community, because non-members can read enough to understand the value of joining, then hit the checkout button when they try to take part. A private or hidden space suits content that should not be visible at all until someone has paid.
Populating a new community quickly
A new forum is only useful once it has structure and content. An empty community is one of the most common reasons a launch stalls, because the first visitors arrive, see nothing happening, and leave. Jetonomy offers several ways to arrive at a populated community without building every category and topic by hand.
Migrating an existing forum. If discussions already live in bbPress, wpForo, or Asgaros, Jetonomy includes importers that bring the categories, topics, and replies across in a guided process. For a site moving away from an older forum tool, this preserves years of accumulated discussion rather than starting from zero.
AI-assisted creation. Jetonomy can connect to an AI model of the site owner’s choice and generate complete forum structures, including topics and starter replies. This is useful for seeding a community with realistic discussion before the first members arrive, so that early visitors land in a space that already feels active rather than abandoned.
CSV through the terminal. Using a standard WordPress Application Password, a site can be connected to a local terminal and populated programmatically from a CSV file. Spaces, topics, and replies can all be created this way. This is the route to use when a forum’s planned structure already lives in a spreadsheet, which is often the case for teams that mapped out their categories during planning. Because the connection uses an Application Password rather than a shared login, it can be revoked at any time without disturbing the site’s user accounts.
WP-CLI and the REST API. For teams that prefer to script their own tooling, Jetonomy exposes command-line commands and a full REST API with complete create, read, update, and delete coverage. Anything the interface can do, an automated process can do as well, which makes bulk operations and repeatable setups straightforward.
Each path reaches the same result: a populated community that is ready for members on day one, rather than an empty shell that has to be filled in public.
Why the underlying architecture matters
It is worth returning to the database design, because it is the quiet reason the rest of this works reliably. Post-based forum tools store every topic and reply as a WordPress post, which means a busy forum competes with the rest of the site for the same tables and the same queries. As the volume grows, list screens slow down and the administration dashboard can become sluggish or unstable.
Jetonomy uses its own tables, indexed for the way a forum is actually read and written. Counters such as reply totals and vote scores are maintained as content changes rather than recalculated on every page view. The practical effect is a forum that stays fast at scale and an admin area that does not degrade as the community grows. For teams that have run into performance or stability problems with post-based forum tools, this is a structural difference rather than a cosmetic one, and it is the kind of decision that pays off most precisely when a community succeeds and grows.
For developers: hooks and extension points
The integration is not a closed box. Two action hooks let custom code respond to membership changes:
jetonomy_membership_activatedfires when a membership becomes active, receiving the user, the level, and the name of the integration that granted it.jetonomy_membership_deactivatedfires when a membership ends, with the same information.
These are the seams to use when access to the forum should trigger something elsewhere, such as adding or removing a user from an external system, sending a tailored welcome message, or recording an event in an analytics pipeline. A filter, jetonomy_membership_upgrade_url, lets a site override the destination of the button shown on a locked space, which is useful when a funnel routes purchases through a custom landing page rather than the default checkout.
Because every integration implements the same internal interface, a developer can also add support for a membership or course plugin that is not on the list without waiting for it to ship in core, and it will appear in the Access Rules dropdown alongside the built-in options.
Planning for the community itself
Access control is the mechanical half of running a paid community. The harder half is making the community worth paying for, and that is a separate discipline from the plugin configuration. Two ideas are worth keeping in mind as you plan.
The first is that a community needs enough concurrent activity to feel alive, a property sometimes called liquidity. A gated forum with strong access control but too few active members still feels empty, and the fix is rarely more members in raw numbers. Our write-up on why liquidity, not headcount, is the real community problem explains the distinction and what to do about it.
The second is that participation is never evenly distributed. In most communities a small fraction of members produce the majority of the visible activity, and a paid community is no exception. Understanding that pattern, explored in our piece on how a community’s most active 1% carry the rest, changes how you design incentives, recognition, and the spaces themselves. Access rules put the right people in the room; these ideas decide whether the room stays worth being in.
Common setup mistakes to avoid
A handful of misconfigurations account for most of the support questions around gated forums, and all of them are easy to sidestep once you know the pattern.
The first is confusing visibility with access. An administrator sets a membership rule, then reports that non-members can still see the content. In almost every case the space visibility is set to Public, which is working as intended: Public means the content is readable but posting is locked. If the content itself should be hidden until someone pays, the visibility needs to be Private or Hidden, and the access rule handles who may take part beyond that.
The second is setting the access level too high in the hope of granting moderation. Choosing Full on a membership rule does not turn paying members into moderators, because moderation is deliberately tied to a person’s WordPress role rather than to a paywall. If a specific member should moderate, the right move is to change their role, or to adjust their role on the Members tab, so the decision stays visible and intentional.
The third is expecting rule-admitted members to appear on the roster automatically. Access works without the roster, so this is rarely a real problem, but if a member count needs to reflect everyone with access, the Sync Members button is the tool for it. Treat the roster as a curated list rather than a live mirror of subscription events.
The fourth is forgetting that PMPro must be active before its levels appear. If the level dropdown is empty, confirm that PMPro is active and that at least one membership level exists, then save the Jetonomy settings page once to trigger detection.
Frequently asked questions
Does the PMPro integration require Jetonomy Pro? No. The Paid Memberships Pro adapter ships in the free version of Jetonomy. Gating spaces by PMPro level works without a Pro license.
What happens to a member’s posts when their subscription lapses? Nothing is deleted. Access to the space is removed, but the member’s topics and replies remain exactly as they were, and they regain access to their history if they resubscribe.
Can one space be unlocked by more than one plan or course? Yes. Stack as many rules as you need. Access is granted when a member matches any single rule, so a space can accept several membership levels, a WooCommerce purchase, and a course enrollment at once.
Does access update instantly, or is there a sync delay? It updates on the member’s next page load. Access is evaluated live against the levels they hold at that moment, so there is no scheduled sync and no delay to configure.
Can I move my existing bbPress or wpForo forum into Jetonomy? Yes. Jetonomy includes importers for bbPress, wpForo, and Asgaros that migrate categories, topics, and replies.
How do I bulk-create a forum from a spreadsheet? Connect the site to a terminal using a WordPress Application Password and populate spaces, topics, and replies from a CSV file, or use the WP-CLI commands and REST API for a fully scripted setup.
Can I gate a space by a course enrollment instead of a membership? Yes. Jetonomy treats course platforms the same way it treats membership plugins. Add a rule pointing at a LearnDash, LifterLMS, TutorLMS, Sensei, MasterStudy, or Learnomy course, and the space opens on enrollment and closes when access ends.
What if the membership plugin I use is not on the list? Every integration is built on the same internal interface, so a developer can add support for another membership or course plugin, and it will appear in the Access Rules dropdown alongside the built-in options. No change to Jetonomy core is required.
Does gating a forum slow the site down? No. Access is resolved with an indexed lookup on the space’s rules, and Jetonomy stores its data in its own tables rather than competing with the rest of the site’s posts, so gated spaces stay fast even on large communities.
Getting started
For a paid community, the shortest path is:
- Install Jetonomy and Paid Memberships Pro, and activate both.
- Create your membership levels in PMPro.
- Create a space in Jetonomy and add an Access Rule that ties it to the level you want, set to Participate.
- Populate the space through migration, AI-assisted creation, or a CSV import, then set its visibility and open the community to members.
The result is a forum where access always reflects the current state of each member’s subscription, with no manual reconciliation, backed by a set of integrations that reaches well beyond a single membership plugin. Paid Memberships Pro is the starting point for many sites, but the same three-step pattern extends to MemberPress, WooCommerce, WP Fusion, and every major learning platform, which means the way you gate one space is the way you gate all of them.
Related reading