You can build a membership site with WordPress using one plugin that handles sign-up, payment, members-only content and member profiles. This guide builds a paid membership site with the free WP User Manager plugin and Stripe: members pay a monthly or yearly fee when they register, manage their own billing, and lose access if they stop paying. Each step says up front where a paid addon comes in.
What a membership site needs
Every membership site, whatever it sells, comes down to five jobs:
- Sign-up: a registration form that creates the member’s account.
- Payment: a one-off fee or a subscription, taken at sign-up and renewed automatically.
- Access: content that only members (or only paying members) can see.
- Self-service: an account page where members update their details, change plan, update their card and cancel without emailing you.
- Community (optional): profiles and a member directory, so members can find each other.
WP User Manager covers the first four in the free plugin, plus profiles and directories for the fifth. The paid addons add whole-post restriction by product, extra registration forms and more field types.
Plan your membership first
Decide two things before you open WordPress:
- What members pay for. Courses, premium articles, downloads, a community, or access to people. This decides what you put behind the gate.
- Your tiers. One paid plan is the simplest start. If you want a monthly and a yearly price, or a basic and a pro level, each one becomes a product (or price) in Stripe.
Keep tiers few. Two or three is plenty, and you can add more once you know what members value. For the strategy and design side, with examples from real sites, see planning and designing a membership website.
How to build a membership site with WordPress
Step 1: Install WP User Manager
Install and activate WP User Manager from wordpress.org (see installing from wordpress.org if you need help). On activation it creates the pages a membership site needs: login, registration, password reset, account and profile. You’ll find them, and can change them, in Users > Settings > General.
Step 2: Connect Stripe
Go to Users > Settings > Stripe and click Connect to Stripe. Start in test mode (the Gateway Mode setting) so you can sign up as a test member before taking real money.
The free plugin uses Stripe Connect, which adds a 2% fee per transaction on top of Stripe’s own fees. The paid Stripe Pro addon uses your own Stripe API keys and removes that fee. Either way, also set up the Stripe webhook: it’s how WordPress hears about renewals, failed payments and cancellations.
Step 3: Create your membership plans in Stripe
Your plans live in Stripe, not WordPress. In your Stripe dashboard, create a product for each tier and give it a price:
- a recurring price for a subscription (monthly or yearly), or
- a one-off price for lifetime access.
Back in Users > Settings > Stripe, click Fetch Stripe Products so WordPress picks them up. Our guide to accepting recurring payments with Stripe shows the Stripe side in more detail.
Get Started with the Best WordPress Membership Plugin Today
Connect, Manage and Build your Membership Site
Step 4: Take payment on the registration form
Go to Users > Registration Forms, edit your form and open its Payment tab. Choose your plans under Stripe Product: one product to charge everyone the same, or several to let people choose their plan as they register.

On the form’s Settings tab, set the Registration Role: the WordPress role new members get. A role such as “Member” makes it easy to tell members apart from other users and to restrict content to them.
New members pick a plan on the form, pay on Stripe’s checkout page, and come back to your site with an account.
For more fields on the form (a phone number, a company, a dropdown), see creating a custom registration form.
The free plugin gives you one registration form. If you want a free tier next to a paid one, or a different role per plan, you need a form per tier: the Registration Forms addon (paid) adds multiple forms, and multi-step forms.
Step 5: Restrict content to members
Now decide what’s members-only. There are two levels.
Parts of a page, in the free plugin. Wrap members-only content in a shortcode such as [wpum_restrict_logged_in] or [wpum_restrict_to_user_roles roles="member"], or select any block in the block editor and use the WP User Manager – Restriction panel to show it only to certain roles. Visitors see a message with links to log in or register. Our guide to creating a members-only area walks through both.
Whole posts, pages and categories, with the addon. The Content Restriction addon (paid) adds a WP User Manager – Content Restriction box to every post and page. Tick Restrict access to this post, then choose who gets in: by role, by user, or by Restriction by Stripe Product, so only members who bought that plan can see it. That’s how tiers work: a “Pro” course page restricted to the Pro product stays locked for Basic members.

The same box can hide restricted posts from menus, archives and RSS feeds (Restrict in Menus and Restrict Everywhere), so locked content doesn’t leak through your blog page. See the content restriction feature for everything it covers.
Step 6: Let members manage their own billing
You don’t need to build anything for this. Members who signed up with a plan get a Billing tab on their account page. It shows their current plan, their invoices to download, and a Manage Billing button that opens Stripe’s customer portal, where they update their card, switch plans or cancel.

To let members switch between plans there, list those prices under Eligible Products in Users > Settings > Stripe and in Stripe’s customer portal settings. Recurring subscriptions explains how they fit together.
When a member cancels, they keep access until the end of the period they paid for. When renewals fail, Stripe retries the card on the schedule in your Stripe settings, then cancels the subscription. Either way, once the subscription ends WP User Manager withholds their role’s access, and when they visit the site they’re sent to the Billing tab with “An active subscription is required.” and a choice of plans to rejoin. You don’t need to remove anyone by hand.
Step 7: Add profiles and a member directory
If members should be able to find each other, give them profiles and a directory. Profiles come with the plugin: control who can see them in Users > Settings > Profiles, and whether they show a member’s posts and comments.
For a directory, go to Users > Users Directories, create one, choose which roles to include and whether to show a search form, then add it to a page with the User Directory block. Our member directory tutorial covers the options, and the Custom Fields addon (paid) adds fields such as location or skills that members can fill in and you can show in the directory.

Step 8: Shape the member journey
A few settings make the difference between a site that works and one that feels finished:
- Redirects. In Users > Settings > Redirects, send new members to a welcome page after registration, and returning members to the members’ area after login.
- Emails. In Users > Settings > Emails, set the From name and address and your logo, so registration emails look like they come from you.
- Menus. In Appearance > Menus (classic themes), each menu item has a Display to setting, so members see a link to the members’ area and visitors see “Join”.
Test it as a member
Before you switch Stripe to live mode, sign up with a test card in a private browser window and check each step: the form, the payment, the redirect, a members-only page, the Billing tab, and what happens when you cancel in the customer portal. It takes ten minutes and catches most problems before a real member does.
What WP User Manager doesn’t do
Being clear about this up front saves you a migration later. WP User Manager takes payments through Stripe only (or through WooCommerce, with the WooCommerce addon), so there’s no PayPal option. There’s no content dripping (releasing lessons week by week) and no built-in tax or VAT invoicing beyond what Stripe provides. If those are central to your plans, a dedicated course or membership platform may fit better.
Get started
Everything up to whole-post restriction is in the free plugin: download WP User Manager from wordpress.org, connect Stripe in test mode, and put your first plan on the registration form. When you need to lock whole posts to paying members or run several tiers, the Content Restriction and Registration Forms addons are in our plans.