Skip to content
GPLWP Guides

How to sell paid memberships on WordPress

Membership & LMS Time About 45 minutes for a basic setup 7 steps Updated 11 Sep 2026

MEMBERSHIP & LMS
The short answer

WordPress does not sell recurring memberships or restrict content by payment status on its own. You need a membership plugin, or custom code connecting a payment processor, webhooks, user access rules and protected content. For most sites, a plugin is the safer and faster route.

The route
  1. 01Plan the membership offer
  2. 02Know what WordPress provides
  3. 03Install a membership system
  4. 04Create plans and payment options
  5. 05Publish registration and account pages
  6. 06Restrict and test the content
  7. 07Choose the fast route

What you need

  • A self-hosted WordPress site with plugin installation access
  • A payment processor account such as Stripe or PayPal
  • Membership plans and prices you have already decided
  • The pages or lessons you want to place behind the paywall

Plan the membership offer

Decide what members receive before configuring WordPress. Choose the plans, prices, billing interval, trial rules, cancellation policy and the exact pages, posts, downloads or lessons each plan can access.

Keep the first version small. One paid plan with a clear benefit is easier to test than several plans with overlapping permissions.

Know what WordPress provides

WordPress can create user accounts, logins and basic roles, but it does not natively process recurring membership payments or connect payment status to content access. A custom build would need a payment processor, webhook handling, subscription records, expiry and cancellation logic, and content checks.

You could build this as a custom plugin using WordPress roles, capabilities, actions and filters, but do not put the logic in a theme or grant access merely because someone returned from a checkout page. The payment provider must confirm the transaction and later renewal or cancellation events before access changes.

Install a membership system

Install and activate a membership plugin that supports paid plans, recurring billing, payment gateways and content restriction. Complete its setup screen first, then check that its registration, login and account pages are assigned correctly.

This is the practical route for most sites because the plugin keeps subscription status, member access and customer account actions together instead of making you maintain several custom integrations.

Create plans and payment options

Create each membership plan and set its price, billing period, sign-up fee or trial if required. Enable the payment gateway you will accept, connect the site to the processor, and set the default gateway for the registration form.

For recurring payments, configure webhook notifications as well as the initial connection. If the webhook stops working, a renewal can succeed at the processor while WordPress still shows the member as unpaid. That is the Friday-afternoon failure worth checking before launch.

Publish registration and account pages

Create a registration page that shows the available plans and payment fields, a login page, and an account page where members can view or manage their subscription. Paid Member Subscriptions, for example, provides [pms-register], [pms-login] and [pms-account] shortcodes for these pages.

Add links to registration, login, account and password recovery in your menu or member area. A pricing table can send each plan button to the registration page with the selected plan ready to purchase.

Restrict and test the content

Apply restrictions to individual posts, pages or lessons, or use global rules for a post type or category. Select the actual subscription plans that should have access. Do not restrict paid content by logged-in status alone: a user account may exist even when its payment is pending or failed.

Test four states in a private browser window: logged out, logged in without a plan, active member and expired or cancelled member. Also test a successful first payment, a failed renewal, cancellation and the member account page. Clear page caches and exclude account, checkout and restricted-content responses from public caching where necessary.

Choose the fast route

If you do not want to build billing and access control yourself, use a membership plugin such as Paid Member Subscriptions Premium + Addons Pack. It fits this job because it combines subscription plans, recurring payment gateways, member forms, account management and content restriction in one WordPress setup.

Use the manual route only when you have a developer who will maintain payment webhooks, renewals, cancellations, refunds, failed payments and access checks. For a normal membership site, configuring the plugin is faster and less likely to leave paid users locked out after a renewal.

The fast route

Let Paid Member Subscriptions Premium + Addons Pack do it

Combines paid plans, recurring billing, payment gateways, and content restriction for a full WordPress membership setup.

Get Paid Member Subscriptions Premium + Addons Pack

Sources

  1. developer.wordpress.org /plugins/hooks/filters/?utm_source=openai
  2. cozmoslabs.com /docs/paid-member-subscriptions/?utm_source=openai
  3. cozmoslabs.com /docs/paid-member-subscriptions/shortcodes/?utm_source=opena…
  4. cozmoslabs.com /docs/paid-member-subscriptions/content-restriction/?utm_sou…

Questions

Can WordPress sell paid memberships without a plugin?
Not as a complete recurring membership system. WordPress provides users, logins and roles, but you still need payment processing, subscription-status updates, cancellation and expiry handling, and rules that restrict content. You can build those pieces in a custom plugin, but that is development work rather than a setting you can switch on in WordPress.
What payment method should I use for recurring memberships?
Use a payment gateway that supports recurring billing and sends status updates back to your site. Stripe and PayPal are common choices, but availability depends on your country and business type. Connect the gateway, configure webhooks where supported, and test failed renewals as well as successful payments before promoting the membership publicly.
Why can a member log in but still not access paid content?
A WordPress account and an active paid subscription are separate things. The account may have been created before payment succeeded, or the renewal webhook may not have updated its subscription status. Check the member’s plan and payment status, confirm the restriction targets that plan, review gateway events, and clear caches before changing code.
Should I restrict content by user role or membership plan?
Restrict paid content by the membership plan or subscription status, not only by a generic logged-in role. Roles can be useful for administration, but they do not by themselves represent a current payment. Plan-based rules also let you offer different content to different tiers and remove access when a subscription expires or is cancelled.