Skip to content
GPLWP Guides

How to create membership tiers and restrict content in WordPress

Membership & LMS Time About 30–60 minutes 7 steps Updated 13 Sep 2026

MEMBERSHIP & LMS
The short answer

WordPress can make content public, private or password protected, but it does not provide paid membership tiers, subscriptions or member-level access rules by itself. For real tiers, install a membership plugin, create each level, then restrict pages, posts, categories or courses by membership.

The route
  1. 01Map tiers to content
  2. 02Know what WordPress can do alone
  3. 03Install a membership plugin
  4. 04Create the membership tiers
  5. 05Restrict pages and posts
  6. 06Connect courses and test access
  7. 07Take the fast route with MemberDash

What you need

  • A WordPress site with administrator access
  • A clear list of membership tiers and the content each tier can access
  • A payment account if memberships will be sold
  • LearnDash installed if you are restricting courses

Map tiers to content

Write down each membership tier before changing WordPress. For example, a Basic tier might access starter articles, while a Premium tier accesses all articles, downloads and courses.

Decide whether access starts immediately, expires when a subscription ends, or is released over time. This prevents overlapping rules that are difficult to troubleshoot later.

Know what WordPress can do alone

WordPress itself can set a post or page to Public, Private or Password protected. Private content is intended for authorised WordPress roles such as editors and administrators, while password protection uses a shared password rather than individual membership accounts.

You can build a custom system with roles, capabilities and code that checks current_user_can() or is_user_logged_in(), but you would still need to build the tier editor, account screens, payment handling, renewals, expiry logic and restriction messages. That route is reasonable for a small internal site, not usually for a paid membership business.

Install a membership plugin

Install a membership plugin that supports membership levels, user registration, payments and content restriction. Complete its setup wizard, then create the required login, registration, account and checkout pages if the plugin asks for them.

For a course site, check that the plugin can connect a membership level to LearnDash courses or groups. LearnDash supports access being managed by an ecommerce or membership add-on, rather than only by its own course settings.

Create the membership tiers

Open the plugin’s membership or levels screen and create one level for each offer. Give each level a clear name, set its duration or renewal behaviour, and configure the price and payment method if you are selling access.

Keep the rules easy to understand. If Premium includes everything in Basic, either configure an explicit hierarchy or assign both levels to the relevant content. Do not assume that a higher-priced level automatically inherits access unless the plugin documents that behaviour.

Restrict pages and posts

Edit a page or post and use the membership plugin’s restriction panel, block or rule screen to select the membership level allowed to view it. Most membership tools can protect whole pages or posts, groups of content such as categories, and selected sections inside a page. WooCommerce Memberships, for example, supports plan rules for posts, pages and taxonomies as well as member-only content blocks.

Choose what visitors should see when access is denied: a login prompt, a registration link, a short teaser or a redirect to the relevant membership page. Check the page while logged out and with a test account assigned to each tier.

Connect courses and test access

If you use LearnDash, connect each membership level to the correct LearnDash course or group and confirm the course enrolment mode. Test a new member, an expired or cancelled member, a member with the wrong tier, and an administrator.

When access appears wrong, check the assigned membership level, the content rule, course or group mapping and whether the test account is actually logged in. Cache is a frequent cause of members seeing the wrong restriction state, so exclude account, login, checkout and other personalised pages from page caching. Support threads also regularly identify theme or plugin conflicts and tests performed while still logged in.

Take the fast route with MemberDash

For the quickest setup, use MemberDash instead of assembling separate membership, payment and course-access tools. It provides membership tiers, Stripe and PayPal payments, subscriptions, invoices and a member dashboard, and it integrates with LearnDash so course access can change with the member’s subscription.

Create the tiers, connect the payment settings, map each tier to its LearnDash courses or groups, then protect your pages and posts from the membership settings. You still need to test logged-out visitors, each tier and cancelled access before launch.

The fast route

Let MemberDash do it

Built-in LearnDash memberships with Stripe/PayPal, subscriptions, invoices, and dynamic course access.

Get MemberDash

Sources

  1. wordpress.org /documentation/article/protect-posts-with-password/?utm_sour…
  2. developer.wordpress.org /reference/functions/current_user_can/?utm_source=openai
  3. learndash.com /support/kb/core/courses/course-enrollment-mode/?utm_source=…
  4. woocommerce.com /document/woocommerce-memberships-restrict-content/?utm_sour…
  5. wordpress.org /support/topic/restrict-not-working-2/?utm_source=openai

Questions

Can WordPress create paid membership tiers without a plugin?
No, not as a complete built-in feature. WordPress has public, private and shared-password visibility settings, and developers can create custom roles and capability checks, but paid tiers require account management, payment processing, renewals and expiry rules that WordPress core does not provide. A plugin is the practical route for a customer-facing membership site.
Can I restrict only part of a page to members?
Yes, if your membership plugin supports a restriction block or shortcode. Add the public introduction outside the protected area and place the premium text, video or download inside the member-only block. Test the page while logged out because editors and administrators often bypass restrictions, which can make a setup appear to work when ordinary visitors still have access.
Why can a member still see restricted content after cancellation?
Caching, delayed payment-status updates or an incorrect course mapping are common causes. Purge page and object caches, confirm that the user no longer has the membership level, and check whether the content is protected by another rule. Do not cache personalised account, checkout or member-content responses as public pages.
Should I use WordPress password protection for membership content?
Only for a simple shared-access page. WordPress password protection does not create individual member accounts, separate tiers, subscriptions, invoices or automatic expiry. It also stores the password in a browser cookie, so one shared password is a poor fit when different customers must receive different access.
How do membership tiers control LearnDash course access?
The membership system assigns a user to a tier, and that tier is mapped to one or more LearnDash courses or groups. When the membership is active, the user receives the mapped access; when it expires or is cancelled, the integration can remove or stop that access. Verify the mapping and enrolment mode because LearnDash can show a user as enrolled even when the course has not yet become available.