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.
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:
- Members have read access to restricted content (posts, pages, videos, and files) on the site:
- Members can see special articles, for example advanced tutorials.
- If an article available for all visitors includes an embedded video, only members can access the video.
- Members can submit content directly from the front-end
- The owner runs a competition for the best cover design and members can upload their work.
- Members can publish ads.
- Members can sign up for lists of activities available only to members:
- Sign up for webinars.
- 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).
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.
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.
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-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
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.
Consider these our project requirements:
- Some courses are offered as WordPress posts.
- Some courses include videos.
- Some courses are provided as eBooks – downloadable pdf and epub files.
- Some courses are available for all visitors (no login required), while others require having an account – being registered as a member.
- You can join as a member for free or you can buy a membership.
- Depending on your membership plan, you get access to different courses (basic, advanced, video tutorials, and eBooks).
- Some tutorials are for everyone but with hidden parts available for members only.
- 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:
- In the first row, define your membership plans, including pricing.
- In the first column, define assets – which resources, privileges or services a member can access.
- Put a star at the intersection of a specific column and a row to indicate whether the asset is available in a specific plan.
- 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:
|Users need to login. Will you need a custom login form?
|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.
|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
|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:
|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.
- Go to Toolset -> Access Control -> Custom Roles tab
- 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.
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
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
Case 2: Restricting read access to specific posts or pages
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.
Case 3: Restricting read access to some parts of the articles
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.
Case 4: Restricting access to video tutorials
We would like to provide video courses for VIP and Premium members on our membership site.
Case 5: Restricting access to downloadable files
Often membership sites provide some files to download.
Case 6: Allowing members to sign up for special activities
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.
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.
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:
- 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
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
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:
- In WooCommerce Subscription settings, you must define how the role will change if the subscription expires.
- Create a WooCommerce Product.
- Change the product type to Subscription.
- Set the price and renewal period.
- Use the Subscription Product instead of your Regular Product in your CRED User Form.
thank you for reading the tutorial, I really appreciate it.