What is a membership site?

A membership site is a site where access to some resources (contents, services, or other special actions) is restricted to privileged users, called members, only. A member is a user who has registered and has an account on the website.

what is a membership site

To access restricted resources, a member needs to be logged in.

Some membership sites offer free accounts and others require payment to sign-up.

Some sites may provide a number of membership plans, each with different levels of access to resources and privileges, for example:

  • Subscriber membership – read access to certain articles
  • Premium membership – read access to all articles
  • VIP membership – read access to all articles plus videos

Different kinds of membership sites

There are different kinds of membership sites depending on what kinds of resources members can access and on what they can do on the site – what privileges they have.

Let’s see some examples:

  1. Members have read access to restricted content (posts, pages, videos, and files) on the site:
    1. Members can see special articles, for example advanced tutorials.
    2. If an article available for all visitors includes an embedded video, only members can access the video.
  2. Members can submit content directly from the front-end
    1. The owner runs a competition for the best cover design and members can upload their work.
    2. Members can publish ads.
  3. Members can sign up for lists of activities available only to members:
    1. Sign up for webinars.
    2. Sign up for getting a free T-shirt.

Then, the site owner can use the list of members who signed up for the specific list to do something, for example send them an email campaign.


You can implement all the above examples using Toolset plugins and without PHP coding.

In some cases you will need additional plugins for example:

  • For handling payments, use WooCommerce plugins.
  • For restricting access to downloadable files use the Toolset Access plugin along with the WordPress Download Manager plugin.

All details are covered further in the document.

The basics of building a membership site

You can turn any WordPress site into a membership site. Let’s see what the process involves.

Separating privileged from unprivileged users

In membership sites, only members will be able to access some assets. So first things first, you need to separate privileged users (members) from unprivileged users (regular visitors).

Members, unlike regular visitors, need to register and login to access restricted resources.
Members, unlike regular visitors, need to register and login to access restricted resources.

A regular visitor turns into a member when he/she receives a WordPress account. To receive an account, he/she needs to register. In some cases, registration is free and in some cases, it costs money. Then, he/she needs to login to access resources available only to members.

You will need the registration and login forms for your membership site.

Defining user roles

There might be different groups of privileged users with different levels of access to assets.

Using custom roles to distinguish different kinds of members
Using custom roles to distinguish different kinds of members

To divide privileged members, you can use WordPress roles. Since the default set of WordPress roles is limited, you might need to define your custom roles.

Setting up capabilities

Along with defining roles, you determine what users with a given role are allowed to do on the site. This is the stage when you assign capabilities to each role.

Roles and capabilities: what different users can and cannot do on your site
Roles and capabilities: what different users can and cannot do on your site

The default capabilities WordPress offers are limited. Again, you will need tools that allow you to enhance this set with more options, for example:

  • restrict read access to some posts and pages
  • restrict access to use some front-end forms
  • allow to edit and delete only own posts of a given custom post type, etc.

Above, we’ve covered just the basics. In practice, however, building a membership site involves more steps such as:

  • creating pages where users can perform actions and manage their assets directly from the front-end
  • handling payments for paid membership
    • time-unlimited
    • time-limited, renewable subscriptions

Let’s look at the process of building a membership site in WordPress and how Toolset plugins can help in this regard.

How to create a membership site – An example

Example membership site built with Toolset plugins
Example membership site built with Toolset plugins

Below, we will implement a hypothetical membership site, which provides access to online courses.

You can follow the steps on your WordPress site. Soon this site will be available at our discover-wp.com service.

Project requirements

Consider these our project requirements:

  1. Some courses are offered as WordPress posts.
  2. Some courses include videos.
  3. Some courses are provided as eBooks – downloadable pdf and epub files.
  4. Some courses are available for all visitors (no login required), while others require having an account – being registered as a member.
  5. You can join as a member for free or you can buy a membership.
  6. Depending on your membership plan, you get access to different courses (basic, advanced, video tutorials, and eBooks).
  7. Some tutorials are for everyone but with hidden parts available for members only.
  8. VIP members can also sign up for online webinars.

Step 1: Defining membership plans – conceptual schema

Before you start implementing your site in WordPress, design your membership “map” on a conceptual level only. It will cover what membership plans are available and what the user privileges for each plan are.

A table can help exemplify this process better. Consider the example below:

  1. In the first row, define your membership plans, including pricing.
  2. In the first column, define assets – which resources, privileges or services a member can access.
  3. Put a star at the intersection of a specific column and a row to indicate whether the asset is available in a specific plan.
  4. In the second row, define for how long each plan is valid. For time limited plans, define what happens after the subscription expires.

Table: Membership plans our hypothetical site offers

Guest (free signup required) Subscriber Premium (10$) VIP ($150)
time unlimited one year time unlimited
Read basic tutorials * * * *
Read advanced tutorials * * *
Read video tutorials * *
Read access to full versions of all articles *  *
Sign up for webinars  *
Download some eBooks * *
Download all eBooks  *

How do you read this table?

In our example, a user who has registered for the Premium ($10) plan

  • has read access to:
    • basic tutorials
    • advanced tutorials
    • video tutorials
    • full version of all articles
  • can download some eBooks
  • cannot sign up for webinars.

In addition, the Premium subscription is time-limited. In our case, the privileges are valid for one year only. If users do not renew their account after the first year, their role will change to that of a Subscriber automatically. It means a user will lose access to everything once available under a Premium subscription.

Step 2: Installing required plugins

WordPress itself provides some features to support building membership sites such as:

  • forms to register new users
  • login forms
  • basic roles and capabilities.

However, today’s websites and customer expectations are much more demanding. If you don’t want to spend hours customizing the default registration forms and adding new roles with PHP code, equip yourself with all the essential plugins.

The following checklist will help:

Questions to answer before getting started Which plugin can help
Users need to register. Do you need custom registration forms which:

  • allow registration with a specific (custom) role,
  • allow you to enter additional information about the user (for example, date of birth, phone number, etc.),
  • fit your site’s overall design?
Toolset CRED
Users need to login. Will you need a custom login form?

  • Do you need a login form, which fits your site’s overall design?
  • Can you include your form anywhere on your site?
  • Do you need custom password reset pages?
Toolset Views
Do you need custom roles?
WordPress provides some basic roles, each with its own set of capabilities defining what users with that role can do on the site. To handle any custom case you will need extra roles or change the capabilities of the default ones.
Toolset Access
How do you restrict read access to specific content?
By default, every site visitor can read all public WordPress posts. Will you need to hide some of your (custom) posts and pages?
Toolset Access, Toolset Types
Would you like your members to submit some content from the front-end? Toolset Types, Toolset CRED, Toolset Access
How do you restrict access to downloadable files? Will you provide different files for different roles? WordPress Downloads Manager + Toolset Access
Will you provide sign up access for special activities available only for members? Types, Views
CRED, Access
Will you charge users for registration? Toolset CRED,
WooCommerce, Toolset WooCommerce CRED
Will some of your subscriptions be time-limited? WooCommerce Subscription

Step 3: Setting up user roles

So how will you control access to different recourses for each membership plan?

The most straightforward way is to define different user roles, a separate role for each plan and then to establish what users with this role can/cannot do.

In our example, we will use the Toolset Access plugin to setup the following roles:

Role Role Type
Guest Toolset Access built-in role
Subscriber WordPress standard role
Premium member Custom role set in Toolset Access plugin
VIP member Custom role set in Toolset Access plugin

The Guest role is already available in Toolset Access. We will use it later to control read access to some of our posts.

The Subscriber role is one of WordPress regular roles. We will use it for members with some basic privileges only, such as the read-only access to some posts not available for visitors.

How to add a custom role using Toolset Access

We need to create two custom roles for the Premium member and the VIP member.

  1. Go to Toolset -> Access Control -> Custom Roles tab
  2. Use the “Add new role” button to add the following roles:
    • Premium member
    • VIP members

You can copy the default privileges from the Subscriber role.

After completing this step your screen should look like this. In brackets, you will see the number of users of your site with this role.

Adding custom roles
Adding custom roles


Custom roles you add with the Toolset Access plugin are saved in the same database table as the default WordPress roles (wp_options -> wp_user_roles). This means that 3rd-party plugins operating on user roles will see your custom roles too.

Step 4: Restricting access to content

Now, once you’ve defined all the required roles, it’s time to establish what users with a specific role can/cannot do and which assets they can access.

The membership site from our example revolves around restricting read access to online courses available as:

  • custom posts and pages
  • video tutorials
  • downloadable files (pdf, epub)

Toolset Access offers a number of ways to restrict access to a website’s resources.
Below, we focus on those related to our project requirements covered in the table.

These are also the most common cases for membership sites.

Case 1: Restricting read access to a Custom Post Type

What members will see
What members will see

What visitors will see
What visitors will see

The most efficient way to restrict read access to some of your content is to separate it as a Custom Post Type (CPT) and exclude read access to this CPT for visitors

How to restrict read access to a Custom Post Type

Case 2: Restricting read access to specific posts or pages

What VIP members will see
What VIP members will see

What unprivileged users will see
What unprivileged users will see

Sometimes you may need to restrict access to certain pages and not to the entire post type. You can do this using the post groups feature of the Toolset Access plugin.

How to restrict read access to specific pages and posts to members only

Case 3: Restricting read access to some parts of the articles

What visitors and subscribers will see
What visitors and subscribers will see

What Premium and VIP users will see
What Premium and VIP users will see

Certain parts of your posts may include information you would like to show only to members with special privileges. You can do this using the conditionally-displayed text feature of the Toolset Access plugin.

How to restrcit access to certain parts of your posts and pages

Case 4: Restricting access to video tutorials

What visitors and Subscribers will see
What visitors and Subscribers will see

What Premium and VIP members will see
What Premium and VIP members will see

We would like to provide video courses for VIP and Premium members on our membership site.

How to restrict access to video tutorials

Case 5: Restricting access to downloadable files

What VIP members will see
What VIP members will see

What unprivileged users will see
What unprivileged users will see

Often membership sites provide some files to download.

How to restrict access to downloadable files

Case 6: Allowing members to sign up for special activities

What privileged users will see
What privileged users will see

What unprivileged users will see
What unprivileged users will see

Some membership sites allow the members to sign up for different activities that are exclusively for members.
In our example, we want to give the VIP members the possibility to sign up for webinars.

Allowing members to sign up for special activities

Step 5: Handling user registration and account management

For any membership site, you need front-end forms for user registration and editing profiles directly from the front-end.

User registration

User registration
User registration

To handle all the membership plans from our example you will need to create 3 User Forms; each registers a new WordPress user with a different role:

  • Subscriber
  • Premium Member
  • VIP Member

Once your forms are ready, you can link to them from one page where users can choose their membership plans.

The Toolset CRED plugin will help.

Check the following CRED tutorials for details:

Login form and account management

Login form and account management
Login form and account management

To allow users to login to your site, create a custom login form that fits the overall look of your site.

You can build custom login forms and pages using the Toolset Views plugin.

After the user logs in, display links to the user’s resources.
Check the following tutorials for details:

Custom “Lost password” page

Lost password flow
Lost password flow

If you decide to create a custom login page, it’s good to build a custom “Lost password” page as well. See the picture.

Toolset Views provides two shortcodes that help you create custom “Lost password” and “Reset password” pages.

Check this part of the “My account page” tutorial for details.

Step 6: Charging fees for membership

For charging fees for registration, use the WooCommerce plugins. Toolset integrates well with the WooCommerce plugins and allows you to connect a user registration form with a WooCommerce product.

Charging fees for time unlimited membership

In our example, the VIP membership is a time unlimited subscription, which means that it will never expire and the user pays only once, when creating a user account.

To handle lifetime subscriptions you need to connect your CRED form for registering users with a WooCommerce product.

The following plugins are required:

  • Toolset CRED (included in Toolset package)
  • Toolset CRED Commerce (included in Toolset package)
  • WooCommerce (free plugin)

Now, you need to create and set up a WooCommerce Product with the price for the VIP membership as a virtual product.
Then, you connect the product with the user form you created to register your VIP members.

Check the Charging payments with CRED to register users tutorial for details.

Handling recurring payments

For handling recurring payments (time-limited subscriptions and those that can be renewed after a specific period), you will need the WooCommerce Subscriptions add-on.

Steps to be performed:

  1. In WooCommerce Subscription settings, you must define how the role will change if the subscription expires.

    WooCommerce Subscriptions setup
    WooCommerce Subscriptions setup
  2. Create a WooCommerce Product.
  3. Change the product type to Subscription.
  4. Set the price and renewal period.
  5. Use the Subscription Product instead of your Regular Product in your CRED User Form.

    Setting up CRED User Form to be connected with a WooCommerce Products
    Setting up CRED User Form to be connected with a WooCommerce Products

Questions?

Agnes Bury, tutorial author
Agnes Bury, tutorial author

Dear reader,
thank you for reading the tutorial, I really appreciate it.

I look forward to hearing your feedback. If you are not a Toolset customer yet, feel free to send me your questions using this form. I’ll be happy to answer.