Trying to figure out a way to sell online courses from your own website?
Online course websites have exploded in popularity lately. That’s for a good reason—they’re a great way to share your knowledge with the world and maybe even make a little money while doing it.
But even if you have the perfect idea for a course, you might not be sure how to go about actually creating your own course selling website.
In this detailed step-by-step guide, we’re here to help. We’re going to show you exactly how to create your own online course selling platform using the massively popular WordPress software and the Paid Member Subscriptions plugin.
This method gives you an incredible amount of flexibility while also keeping your costs low, which means you get to keep more of every course you sell. Better yet, this method also doesn’t require any special technical knowledge, so you don’t need to be a developer to set this up. All you’ll need is a WordPress site, which is very easy to create nowadays.
You can use this approach to sell one or more courses, coaching programs, consultancy services, or a mix of all three (and more). You’ll also be able to charge one-time or recurring membership fees and even create free plans to help attract members.
We’ll start by quickly introducing you to how this setup works. Then, we’ll get right into our detailed tutorial that covers every step to sell online courses from your own website.
What You Need to Sell Online Courses From Your Own Website
If you want to create an online course platform, the open-source WordPress software offers the easiest way to get started. Not only does WordPress give you access to all the features that you need, but this approach will also be a lot more affordable than expensive SaaS platforms like Teachable.
Essentially, WordPress will provide the foundation for your course platform. Then, you can add some important features using the Paid Member Subscriptions plugin.
Paid Member Subscriptions is a membership plugin for WordPress that offers all of the features that you need to turn WordPress into a course selling platform including:
- Creating as many courses and lessons as needed for your platform;
- Restricting access to your course content so that only authorized users can access it;
- Charging one-time or recurring fees to access course content. You can also offer free plans or combine both free and paid plans;
- Managing all of your members and giving learners front-end dashboards where they can manage their own course access plans.
By combining WordPress and the Paid Member Subscriptions plugin, you can create an incredibly flexible course platform at a surprisingly low price.
Best of all, you can set everything up without needing any special technical knowledge, which is what we’re going to show you how to do in the rest of this post.
How to Create An Online Course Selling Platform With WordPress and Paid Member Subscriptions
Now, let’s get into the step-by-step guide for how you can use WordPress and Paid Member Subscriptions to sell online courses from your own website.
1. Set Up Your Basic WordPress Site
Before you can start setting up your course functionality, you’ll need to have your basic WordPress site up and running.
If you already have a WordPress site or you’re familiar with how to make a WordPress site, you can skip ahead to the next step.
If not, you’ll first want to:
- Choose WordPress hosting and a domain name. SiteGround is a good starting point for hosting if you’re not sure where to begin, but you can find lots of great WordPress hosts.
- Install the WordPress software. Your web host should have a tool that lets you install WordPress with just a few clicks.
- Log in to the WordPress dashboard. You can access it by appending /wp-admin to the end of your domain name and using the username/password that you created during the WordPress install process.
- Choose a WordPress theme to control the design of your course. For this example, we’ll use the free Kadence theme and its free online course demo site, but you can use any WordPress theme including Neve, Astra, GeneratePress, and so on. You can install a theme by going to Appearance → Themes → Add New in your WordPress dashboard.
After importing the Kadence course demo site, here’s how our example site looks:
You can customize all of the content using the WordPress editor.
We’re off to a good start! However, at the moment, your course site is all looks—now, it’s time to set up the actual course and membership functionality.
2. Install Paid Member Subscriptions and Configure Basics
Once you have your WordPress site up and running, you’re ready to install the Paid Member Subscriptions plugin by going to Plugins → Add New in your WordPress dashboard.
Again, Paid Member Subscriptions is what lets you add the course functionality to your WordPress site. You need it to:
- Restrict access to your course content;
- Manage different levels of learners, such as which courses each learner has access to;
- Accept one-time or recurring payments;
- And so on.
Most of the rest of this tutorial will be focused on configuring Paid Member Subscriptions for your course platform. But before you get to the more advanced settings, you first need to install the plugin and configure some basics.
You can use the free version of Paid Member Subscriptions to create a very simple course site. However, most people will want the premium version because it adds some key online course features such as automatic recurring subscriptions, bulk content restriction, content dripping, and more.
For that reason, we’re going to use the premium version for this tutorial, though many of the basic principles will also apply to the free version.
Set Up Paid Member Subscriptions
- Install the free version of Paid Member Subscriptions from WordPress.org.
- Purchase the Paid Member Subscriptions plugin to extend the core plugin with additional features. If you want to “drip” your course content out over time, you’ll want the Pro license.
- Download the pro plugin from your Cozmoslabs account dashboard and install it on your WordPress site. You’ll also want to add your license key to activate the premium add-ons.
Once you’ve activated the plugins, head to the new Paid Member Subscriptions area in your WordPress dashboard and click the Open Setup Wizard button to configure some important basics:
First, you can have the plugin create important pages for your course, such as pages for user registration, login, account management, and password reset.
You can also make a few other basic choices on the first page of the setup wizard—don’t stress too much about any choices here because you can always adjust these settings later on:
Next, you can configure your preferred payment gateways and the currency for your course. You can just skip choosing your payment gateway for now because we’re going to configure that in a second:
And that’s it! Let’s do a few more housekeeping settings.
Enable Premium Add-Ons
If you purchased the premium version of Paid Member Subscriptions, you’ll next want to enable some of the premium add-ons for optimal course functionality. You can do this by going to Paid Member Subscriptions → Add-ons.
You can enable any add-ons that you want, but here are the add-ons that we recommend all online courses enable:
- Discount Codes – this lets you run promotions, such as offering a coupon code for some/all of your courses.
- Global Content Restriction – this lets you easily restrict access to all of your course content.
- Navigation Menu Filtering – this lets you optimize your navigation menus for logged-in users.
- Content Dripping – this lets you drip out lesson content on a schedule instead of making it all available at once.
You’ll also probably want to enable one of the premium payment gateway add-ons, such as Stripe, PayPal Express, or Recurring Payments for PayPal Standard. These will let you accept automatic recurring payments and just generally give you more flexibility for how you price your courses.
Speaking of payment gateways…
Configure Your Payment Gateway
To access the full payment gateway settings, head to Paid Member Subscriptions → Settings → Payments. Here, you can choose whether to enable one or more of the following options:
- Manual/offline payments
- PayPal Standard
- PayPal Express
- PayPal Payments Pro
If you choose to enable a payment gateway, you’ll also need to enter connection details for that gateway. Here are guides for the various gateways:
- PayPal Standard documentation
- Stripe documentation
- PayPal Express documentation
- PayPal Payments Pro documentation
On this screen, you can also make some other choices about how payments function, such as whether to automatically renew subscription payments by default or require the user to opt-in to automatic payments:
3. Add Your Course Content
Now, you’re ready to add your course content.
To separate your course content from your blog posts and regular pages, you’ll probably want to create a custom post type to house your courses. If you’re not familiar with this term, a custom post type essentially lets you create a separate type of content on your site just for course lessons. So instead of going to Posts → Add New like you do when you’re writing a blog post, you would go to Lessons → Add New to create a new lesson.
If you don’t plan on creating a blog for your course platform, it’s totally fine to just add your course lessons as regular posts. However, if you want to create a blog in addition to your course content, we recommend creating a custom post type for your lessons. For that reason, we’re going to use the custom post type approach in our tutorial.
Create a Course Custom Post Type
Don’t worry—creating a custom post type is super easy and doesn’t require any code.
To set it up, you can use the free WordPress Creation Kit plugin (WCK). Once you install and activate the free plugin from WordPress.org, go to WCK → Post Type Creator to create the custom post type for your course content.
Here’s how to configure it:
- Post type – lesson
- Singular Label – Lesson
- Plural Label – Lessons
For the other settings, you can leave them as the defaults. However, we recommend considering each setting as you might want to change things. For example, if you want to let people comment on individual lessons, you’ll want to check the comments box under Supports.
Once you’re finished, make sure to click the Add Entry button. Now, you should see a new Lessons option in your WordPress dashboard sidebar:
Create a Custom Taxonomy to Organize Courses
If you’re creating multiple courses, you’ll also want to create a custom taxonomy so that you can organize your lessons based on their course. A “taxonomy” is just a fancy way of saying “category” or “tag”. WordPress comes with categories and tags by default, but you can create your own taxonomies to give you more control over organization.
To create a taxonomy to organize lessons into distinct courses, go to WCK → Taxonomy Creator. Here’s how to configure it:
- Taxonomy – course
- Singular Label – Course
- Plural Label – Courses
- Attach to – lesson
- Hierarchical – true
Make sure to click the Add Entry button when you’re finished.
Add Lesson Content and Organize Into Courses
Once you’ve created your custom post type and taxonomy, you’re ready to start adding lesson content.
To begin, go to Lessons → Add New in your WordPress dashboard. You’ll now be in the regular WordPress editor, where you can add all of your lesson content.
To add text lesson content, you can just click and type. If you want to add video or audio content, you can find dedicated blocks to embed your own self-hosted audio/video content or content from third-party sources such as YouTube, Vimeo, and so on.
If you need to keep your videos private, you can use Vimeo’s premium service to manage your videos and make sure learners can’t share videos with unauthorized users.
Once you’ve added your content, use the Courses option in the Lesson sidebar to associate your lesson with a specific course (you can also add a new course if needed). For example, let’s say our lesson is in the “Fundamentals of Investing” course. You would add it like so:
If applicable, you can even associate one lesson with multiple courses.
Then, repeat the process to add additional lessons for all of your courses as needed.
Don’t worry about the order of your lessons right now. You’ll be able to organize them later in this post. You’ll also be able to implement content dripping so that learners get access to course content over time. For example, you could give them access to the first three lessons as soon as they join and then add access to one new lesson per week.
Create a Course Overview Page
To make it easier for learners to browse a course’s full content, you might want to also create a course overview page that links to all of the lessons.
You can do this by just creating a new lesson and naming it “[Course Name] Overview” or something similar:
4. Create Your Course Membership Levels
Now, you’re ready to create your course membership levels. Each membership level can have a different price and grant access to different courses.
For example, you could have a membership level that grants access to a single course as well as a bundle membership level that gives users access to all courses for one price.
You can also create memberships for different durations of time. For example, you could have one membership that gives people access to all courses for a recurring monthly fee and another membership level that gives people lifetime access for one large upfront fee.
Basically, you have the flexibility to configure your membership levels to make sense for your course platform!
To create a subscription level, go to Paid Member Subscriptions → Subscription Plans → Add New. Here, you can configure the name, pricing, and access duration. You also get options to offer free trials or charge one-time signup fees.
For the User role setting, leave it as the default. But you can feel free to adjust all of the other settings according to your needs:
Make sure to click the Save Subscription button when you’ve configured everything.
If you want to offer multiple subscription options, you can then repeat the same process to create additional plans.
You also have the option to add plans as upgrades or downgrades, which lets users upgrade or downgrade to a different tier. Or, you can add each plan as a separate entity.
5. Restrict Content (Including Content Dripping If Needed)
Once you have your membership levels, you’re ready to restrict access to your course content and lessons. This ensures that only authorized users are able to view specific courses and lessons.
As we mentioned earlier, you also have the option to implement content dripping, which lets you slowly “drip” out course content over time instead of giving people access to it right away.
To save time while restricting content, Paid Member Subscriptions lets you bulk restrict content using the Global Content Restriction add-on (enable it by going to Paid Member Subscriptions → Add-ons). Because you set up a custom taxonomy for each course, you can quickly restrict access to entire courses by targeting your custom taxonomy.
First, go to Paid Member Subscriptions → Subscription Plans and edit the subscription plan that you want to use to give access to one or more courses.
For example, let’s say you created a dedicated subscription plan for the “Fundamentals of Investing” course and you want to restrict that course to only people who purchased this plan.
In the subscription plan’s settings, scroll down to the Global Content Restriction box:
- Choose lesson as the post type.
- Choose Course as the taxonomy.
- Use the checkbox to select the specific course:
You can also configure one membership level to give access to multiple courses. For example, let’s say you have an all-access plan that gives access to every single course. All you need to do is check the boxes for all of the courses:
Or, you could just grant access to the entire lesson post type.
Set Up Content Dripping Schedules (Optional)
With your current configuration, learners will get access to every single lesson in the course as soon as they sign up. If you’d rather drip out course content over time, you can set that up by creating a content drip set with the Content Dripping add-on.
Once you’ve enabled the add-on, you can go to Paid Member Subscriptions → Content Drip Sets → Add New to create your first drip schedule.
Select your desired subscription plan at the top. Then, set up your content dripping schedule using the Content box.
Another cool thing you could do here is drip access to courses instead of individual lessons, which could be useful for an all-access plan. To do this, you would set the Type equal to your courses taxonomy instead of choosing individual posts:
6. Customize Your Payment/Registration Page
Paid Member Subscriptions already created a registration page for your platform as part of its setup wizard.
However, you might want to do two things to optimize your online course selling platform:
- You might want to customize this registration page to optimize it for signups.
- You might want to create dedicated signup pages for specific courses, rather than or in addition to just having one signup page for everything.
Paid Member Subscriptions makes it easy to do both.
To customize your existing registration page, just go to the Pages area in your dashboard and edit the Register page that Paid Member Subscriptions created for you.
If you want to create dedicated registration plans, you can add modifiers to the Paid Member Subscriptions registration shortcode. For example, this shortcode will only display the subscription plans with IDs “1” and “2” and hide the rest:
You can find a subscription plan’s ID by going to Paid Member Subscriptions → Subscriptions Plans and looking in the ID column.
7. Customize Your Navigation Menu for Course Takers
To create a more user-friendly experience for your course takers, you might want to customize the navigation menu based on whether or not users are logged in and which courses they have access to.
For example, an anonymous visitor might see a navigation menu item that prompts them to register for your courses, while logged-in users might see navigation menu items to quickly access the courses that they’ve purchased.
To set this up, you can use Paid Member Subscriptions’ Navigation Menu Filtering add-on.
With this add-on, you’ll get some new options when you go to Appearance → Menus to control your navigation menus.
For example, let’s say you want to include a sub-menu link to the “Fundamentals of Investing” course table of contents…but only for people who are logged in and have purchased the “Fundamentals of Investing” course/subscription plan.
To achieve this, you would add the menu item where you want it to appear. Then, use the Display To rule to only show it to Logged In Users and save your changes. Then set the Limit to the relevant subscription plan:
You can also go in the opposite direction and only show certain menu items to anonymous visitors. For example, you could include a CTA to purchase a membership plan that only displays to non-members:
8. Launch Your Course Platform!
And that’s it! You just set up your own online course selling platform using WordPress and the Paid Member Subscriptions plugin.
You might want to do a few other smaller housekeeping tasks, such as customizing the emails that your site sends to members via the Paid Member Subscriptions settings. But in general, you now have a fully working course selling website.
Need Quizzes and Assignments? You Can Integrate PMS With LearnDash
For most people, the features above are all that you need to create an online course platform. However, for more academic-focused courses, you might want the ability to include features such as gradable quizzes and assignments in your courses.
In that case, you can integrate the Paid Member Subscriptions plugin from above with the LearnDash LMS plugin.
You’ll still be able to use Paid Member Subscriptions to accept payments, restrict content, and generally manage your learners. But then you can connect Paid Member Subscriptions’ membership levels to LearnDash courses so that you can take advantage of LearnDash’s quizzes, assignments, and other academic features (such as its ProPanel reporting dashboard).
Create Your Own Course Selling Website Today
With Paid Member Subscriptions, it’s easy to sell online courses from your own website.
You can add as many courses and lessons as needed. Then, you can quickly restrict access to some or all of your courses using as many membership levels as needed.
If you want to monetize your courses, you can then charge users one-time or recurring membership fees to access your course content.
If you’re ready to get started, create your WordPress site, purchase Paid Member Subscriptions, and you’ll be up and running in no time by following this tutorial.
Do you still have any questions about how to sell online courses from your own website using WordPress and Paid Member Subscriptions? Let us know in the comments!
Subscribe to get early access
to new plugins, discounts and brief updates about what's new with Cozmoslabs!