Want to build an online course on your blog without having to pay monthly fees for a platform like Teachable? I am going to show you how you can do this in several different ways.
Podia costs $39/month. If you want the Pro version with an affiliate program feature, you would pay $79/month.
Teachable costs $39/month, plus 5% in transaction fees, monthly payouts. Their Pro version costs $99/month, no transaction fees and instant payouts.
Thinkific costs $49/month. It also has a free version that doesn’t have an affiliate program.
But the biggest problem with these platforms is that they store the email addresses of your students and they send marketing emails to them. And if you know anything about online marketing, then you know that your most valuable asset is your mailing list.
I am going to show you how to create online courses that look like this, including email marketing integration and your own affiliate program – without the high cost.
(This post contains affiliate links.)
You don’t need to change your blog theme just because you want to host online courses on it.
The layout of my courses, which you see below, come from the Thrive Apprentice plugin, not the theme.
In the full Thrive Themes membership you can choose from 10 different themes. The theme I am using is called Pressive, but I built courses with other Thrive plugins also and they looked great.
Update: Feb 2019
Thrive Themes just released Course Craft, the course that teaches you the complete system for building a highly profitable online course business.
Shane, the CEO was in the online courses business and personally released 6 and 7 figure courses on a shoestring budget. In fact he started Thrive Themes and git into the plugin business because he was unhappy about the existing online course solutions.
Shane is going to show you how you can create an online course that sells for $200… and sell on average, 1 of them per day.
With this release Thrive Apprentice was made available for purchase as a plugin on its own and SendOwl integration was added.
If you don’t want to pay the monthly fee, keep reading, check out the rest of this post.
This is an online course plugin where you can set up a regular or a video course as well. You can select if you want to host your videos on YouTube, Vistia or Vimeo.
Thrive Apprentice is a ready-to-go platform where you don’t need to bother with building pages from scratch. All you need to do is add your photos, text and videos.
The plugin gives you an entire online course template. There is already a nice lesson structure arranged that is comparable with Teachable or any other premium platform, without the monthly fees and cost. (It costs $67 for 1 website, $97 for 5 websites.)
The updated version of Thrive Apprentice has built-in integration with SendOwl, which means for roughly $10 per month, ($15 if you want an affiliate program) you can sell your course and you don’t need a third party plugin. SendOwl has built-in EU VAT compliance.
You will need Thrive Architect to edit the lessons of your course and to set up your opt-in and sales pages. Just select your template, add your photos, text and videos. At the same time you have the freedom to add all kinds of components to the pre-made templates.
(Thrive Architect costs $67 for 1 website, $97 for 5 websites. However for $219 you can get all of the Thrive Themes plugins, including Thrive Leads and also all of their premium themes.)
Thrive Apprentice doesn’t include selling and collecting payments for your course.
To do that, you can choose from the following membership plugins, however these don’t include EU VAT feature:
Alternatively you can use WooCommerce for collecting payments. The advantage of Woo is that
The disadvantage is that you will need an additional plugin like YITH Automatic Role Changer for WooCommerce Premium to assign a given membership role to the buyer – this is how they can be granted access to that specific course.
I personally tested both versions and I prefer the WooCommerce version, because you don’t have a limit on the number of courses you can sell and you are not stuck with a PayPal payment button that would make your sales page cheesy.
The best WordPress theme for online courses is any of the Thrive themes, because of compatibility reasons. Thrive Themes are designed to work together with the Thrive Apprentice plugin. You can, however use any other theme. If you have a premium theme already, you can keep using it without problems.
Now I am going to show you how easy it is to build a course with the Thrive Apprentice WordPress course plugin.
First create a new page where all your courses will be listed, like “Online Courses”.
Then create a registration page for your courses.
There is one thing that you need to pay attention to when you start. The earlier versions of Thrive Apprentice had to be activated from the Theme Options and only some of the themes were designed to support the course feature.
Instead, you just need to go to the Thrive Dashboard, then click on Thrive Apprentice >Thrive Dashboard.
You will see the following:
Welcome to Thrive Apprentice 2.0!
In order to create your online teaching platform, we need to set up two-three things really quickly.
Step 1: Choose a page where all your courses will reside.
You can search through existing pages and select the one you just created or you can create a new one.
The next screen:
Step 2: You can choose to personalize the template for your courses or go directly to creating courses by loading the default template.
You can always edit the course template by going to Settings > Template Options.
Click on Load Default Template.
You will be taken to your Thrive Apprentice Dashboard.
Go to Settings>General Settings
Set your course registration page and you can enable comments if you want to.
Go to Settings>Template Settings
Here you can change the course’s name, description, font sizes, all the placeholders and button texts.
With this you can even set your course up to display in a certain language. Just change all text to that language.
Click on Course Topics. It will say “General”.
In this case I am adding “Introductory” for my free stuff and “Premium” for my blog traffic course.
You can assign a photo and pick a color to color code the different types of courses.
Like green for free and dark blue for premium.
Under Filter by Topics you are now able to see the categories you just created.
Now click Add Course.
You can add your course name, URL, write a short introduction.
Then upload an image, approximate size 1170 x 382.
If you press the switch on the left bottom, you can add a video also.
If you click on Advanced Settings, you can set some details like instructor name, if comments are allowed and category.
But more importantly, this is where you can set whether the course is available for logged-in users only and for which user roles. (The plugin uses the built-in WordPress user role system.)
This is the point where the membership or shopping cart plugin connects to the course and therefore you will
Some membership plugins like S2 Member have such features.
You also have a chance to exclude some lessons from the protection rules and use them as teasers.
When you are done, click Save to save your course.
You will see that the plugin pulled your profile photo as instructor. (You can change the instructor to be any registered WordPress user.)
Now you can add lessons.
First you add the intro of the lesson.
To add the actual lesson content, click Edit with Architect. This will open Thrive Architect for adding/editing your lesson content.
From the right sidebar menu you drag and drop either the Paragraph element, in which case you type your text in, but you can also do it with the WordPress Content element, in which case you can use the full WordPress editor to add whatever you wish, even affiliate links.
After you added your first lesson, you can publish it.
After you have done that, you can also publish your course.
If you only have one course, your student will be taken straight to the first lesson. If you have more, you will be taken to an index page like this:
I had this problem and it took a while to figure out why.
As a general rule, if you have any problems with Thrive Themes or plugins, there are two reasons.
If you see a page loading gray, it is always plugin conflict. Identify which plugin is causing the problem by turning them off – you can try one by one, but if that doesn’t work, turn off all plugins (except Thrive) and then turn them on one by one.
The reason why my course pages weren’t showing up was the Thirsty Affiliates plugin. I turned it off and then on and this fixed the problem.
In order to sell your course, you need a sales page. I use Thrive Architect for creating all of my sales pages.
It has a template called Know-How for online courses, which includes not just the sales page, but lead generation page, video sales page, email confirmation page, etc.
You just open the template, change the text, the photos or add any needed elements from the left sidebar, such as text, buttons, background, etc. You can easily change the font, the color, the style of the background, add shadow, pattern, etc.
The procedure is similar if you want to create a lead generation page, email confirmation page, etc.
We have used Thrive Apprentice to set the course up. However this plugin doesn’t itself have a feature to sell your course and doesn’t include the membership registration, etc. functions of your site. To do that, you will need a membership plugin.
Instead of giving you just one membership plugin option, I am giving you three, this way you can decide what fits you best.
Important note: If you sell digital products but aren’t EU VAT compliant, your business is in a vulnerable position and could be fined.
EU VAT calculation and collection built-in:
Some EU VAT integration if you pay for 3rd-party providers:
No EU VAT features:
You can easily create a purchasing process for your courses, if you create a link between Thrive Apprentice and SendOwl and this is their officially recommended solution.
Naturally, besides having Thrive Apprentice, you will need to have a SendOwl account as well, in order to do this. Once you have both of these, you can start by establishing an API connection between them.
Adding the connection is really easy.
You can read the Knowledge Base for a more detailed tutorial.
Inside SendOwl, you can create products — a series of actions that take place upon purchase — as well as customize your cart and checkout experience for customers. You can set your checkout to appear when visitors click ‘buy now’ buttons on your sales page — a super easy step to set up when using the Thrive Architect landing page and content builder.
You can insert the purchase links of your products on sales pages by linking them either to call-to-action texts, buttons, images or to other elements of your choice, using Thrive Architect.
Setting up a Checkout and a Thank you page is the final part of the “SendOwl Settings” process.
Go to your Thrive Apprentice dashboard and click on the “Settings” section from the upper right corner of the page:
This is where you can configure all these settings. You can read the Knowledge Base for more details.
If your customer is from the EU, VAT will automatically be calculated, collected and reported for you by SendOwl— no expensive tax software add-ons needed. It also has a built-in affiliate program where you can reward other bloggers for selling your courses.
SendOwl does not replace your Email Service Provider, but does integrate directly with:
The above is really neat, however I was looking for a solution that doesn’t require a monthly fee.
After I tested several different different plugins, for me WooCommerce proved to be the best solution. This opinion is not shared by Thrive Themes staff, they call this the “Frankenstein monster” because they deem the setup of WooCommerce a complicated process.
Well, if you want to avoid paying monthly fees, this added complication is the price you have to pay. I have set up several stores this way and I love it. It’s your choice.
If you want to use unusual payment gateways, e. g. for a foreign country, many times WooCommerce is the only solution to implement this if you don’t want to pay for a developer. WooCommerce has a natural interface with PayPal and Stripe.
WooCommerce is widespread, lots of plugins got created for it and you can take advantage from this fact.
(Note: This section is currently being updated. Check back later for the full version.)
The main reason the WooCommerce Services plugin is needed is automated tax calculation and collection at checkout.
This WooCommerce email designer plugin lets you easily customize the default transactional WooCommerce email templates. Edit the design using the native WordPress customizer for instant visual edits. Customize the text (including body text) or each email template in WooCommerce without editing code.
I used the free Members plugin to add a role that is equivalent to each paid course. E. g. for the “7-Day Funnel Fix” course I added the role “Funnel Fix” and I added the role “Google First Page” for the “Blogging On The First Page Of Google” course.
The Automatic Role Changer plugin allows you to automatically assign roles to your customers following a specific purchase or amount spent in your WooCommerce store.
I set up a rule as shown below to assign the specific role after “User purchases a specific product”.
Once this is done, I went to the Advanced Settings of the Thrive Apprentice plugin to set the permission (see the checkbox in the middle):
The WP Affiliates Manager plugin has built in integration with WooCommerce. Simply activate these two plugins on your WordPress site and do the basic setup configuration. After that, you will be ready to start accepting affiliate registration on you site.
Your affiliates will be able to send traffic to your WooCommerce store and get rewarded for it when a customer (referred by the affiliate) purchase a product.
Because the two systems are connected, you can accept payment with any system that has a WooCommerce plugin.
If you want to receive payments through PayPal or accept credit card payments through PayPal, this plugin is your best choice.
Despite its name, this plugin has a free version. It gives you a basic set of functions with simple basic membership pages already pre-made. This is how you set it up.
Go to Memberships>Membership Levels, add the desired levels.
I am adding a Free Membership and a Traffic Course level. Don’t worry about all the details, just add the name of the level and the price.
Doing this will also generate the user role we need in the Thrive Apprentice plugin for restricting the content of the course.
Pages: This is where you can add your membership signup pages:
PayPal, Stripe, Authorize.net, 2checkout, Braintree, check and Cybersource are supported, plus there is a test setting.
This is where you can set the “From” email address, the sender’s identity.
You can also set when you, the site admin, want to receive emails, such as checkout, cancellation, new user signup.
There is a menu for free and pro add-ons, viewing the members list, reports, orders.
You also have the option to set up discount codes (coupons).
Here are just some of the add-ons (the Pro membership costs $297/year for 1-5 sites):
Hide Admin Bar From Non-admins – WordPress.org
A tweak of the code by Yoast to hide the admin bar for non-admins only.
Import Users from CSV – WordPress.org
Import Users data and metadata from a csv file.
Paid Memberships Pro – Add Member Admin – PMPro Plus
Allow admins to add members in the WP dashboard.
Paid Memberships Pro – Add Name to Checkout Add On – PMPro Plus
Adds first and last name fields to the user account section at checkout for Paid Memberships Pro.
Paid Memberships Pro – Add PayPal Express Add On – PMPro Plus
Add PayPal Express as a Second Option at Checkout
Paid Memberships Pro – Addon Packages – PMPro Plus
Allow PMPro members to purchase access to specific pages. This plugin is meant to be a temporary solution until support for multiple membership levels is added to PMPro.
Paid Memberships Pro – Address For Free Levels Add On – PMPro Plus
Show address fields for free levels also with Paid Memberships Pro
Paid Memberships Pro – Advanced Levels Page Shortcode Add On – PMPro Plus
An enhanced shortcode for customizing the display of your Membership Levels Page for Paid Memberships Pro
Paid Memberships Pro – Affiliates Add On – PMPro Plus
Create affiliate accounts and codes. If a code is passed to a page as a parameter, a cookie is set. If a cookie is present after checkout, the order is awarded to the affiliate account.
Paid Memberships Pro – Approvals Add On – PMPro Plus
Grants administrators the ability to approve/deny memberships after signup.
Paid Memberships Pro – Auto-Renewal Checkbox – PMPro Plus
Make auto-renewal optional at checkout with a checkbox.
Paid Memberships Pro – AWeber Add On – WordPress.org
Sync your WordPress users and members with AWeber lists.
Paid Memberships Pro – bbPress Add On – WordPress.org
Allow individual forums to be locked down for members.
Paid Memberships Pro – Better Logins Report Add On – PMPro Plus
Adds login, view, and visit stats for “This Week” and “This Year”.
Paid Memberships Pro – BuddyPress Add On – WordPress.org
Manage access to your BuddyPress Community using Paid Memberships Pro.
Paid Memberships Pro – Check Levels Add On – PMPro Plus
A collection of customizations useful when allowing users to pay by check for Paid Memberships Pro levels.
Paid Memberships Pro – Constant Contact Add On – WordPress.org
Sync your WordPress users and members with Constant Contact lists.
Paid Memberships Pro – Custom Level Cost Text Add On – PMPro Plus
Modify the default level cost text per level, per discount code, or globally via advanced settings.
Paid Memberships Pro – Custom Post Type Add On – PMPro Plus
Add the PMPro meta box to CPTs and redirects non-members to a selected page.
Paid Memberships Pro – Developer’s Toolkit – PMPro Plus
Various tools to test and debug Paid Memberships Pro enabled websites.
Paid Memberships Pro – Donations – PMPro Plus
Allow customers to set an additional donation amount at checkout.
Paid Memberships Pro – Download Monitor Integration Add On – PMPro Plus
Require membership for downloads when using the Download Monitor plugin.
Paid Memberships Pro – Email Confirmation Add On – PMPro Plus
Require email confirmation before certain levels are enabled for members.
Paid Memberships Pro – Email Templates Add On – PMPro Plus
Define your own custom PMPro HTML Email Templates.
Paid Memberships Pro – Extra Expiration Warning Emails Add On – PMPro Plus
Send out more than one “membership expiration warning” email to users with PMPro.
Paid Memberships Pro – GetResponse Add On – PMPro Plus
Sync your WordPress users and members with GetResponse campaigns.
Paid Memberships Pro – Gift Levels Add On -PMPro Plus
Some levels will generate discount codes to give to others to use for gift memberships.
Paid Memberships Pro – Group Discount Codes Add On – PMPro Plus
Adds features to PMPro to better manage grouped discount codes or large numbers of discount codes.
Paid Memberships Pro – Infusionsoft Add On – WordPress.org
Sync your WordPress users and members with Infusionsoft contacts.
Paid Memberships Pro – Invite Only Add On – PMPro Plus
Users must have an invite code to sign up for certain levels. Users are given an invite code to share.
Paid Memberships Pro – Kissmetrics Add On – WordPress.org
Integrates your WordPress site with Kissmetrics to track meaningful user data, with or without Paid Memberships Pro.
Paid Memberships Pro – Limit Post Views Add On – PMPro Plus
Integrates with Paid Memberships Pro to limit the number of times non-members can view posts on your site.
Paid Memberships Pro – MailChimp Add On – WordPress.org
Sync your WordPress users and members with MailChimp lists.
This plugin prevents people from sharing their login credentials for your site, which is especially good for paid membership sites.
You can use PM Pro’s paid Lightweight Affiliate Tracking plugin.
The plugin creates unique affiliate codes assigned to your affiliate users. When someone visits your site using an affiliate URL (a code is passed to a page as a parameter), the affiliate’s cookie is set for the specified number of days. If a cookie containing an affiliate referral code is present after checkout, the order is logged in the affiliate’s account.
If you don’t want to pay for the PM Pro Plus membership in order to set up an affiliate program, you can choose the free Affiliates Manager Paid Membership Pro Integration plugin.
When members pay for membership on your site, this add-on will check to see if the member was referred to your site by an affiliate. It will then give commission to the affiliate who referred the user.
This plugin also has a PayPal mass pay function.
The way it works is very simple:
Unlike PMPro, S2Member has a lot of options.
The first thing you must do is create 2 new pages called:
1- ‘Subscribe’ – This is your Membership Options/Subscribe/Register page. For an online course you can call it “Pricing”, “Course Registration” and contains the price list of the different courses you offer with payment buttons. (Click on the link to see what I set up with Thrive Architect.)
2 – ‘Members’ – This is the ‘Login welcome’ page of the members/course area. The Login Welcome Page that you configure with s2Member will serve as a customer’s “My Account” page, or something similar. This makes it possible for a customer to find what they’ve purchased and to locate information associated with their account.
Here is a video that also explains the process:
Once you have done this we can set everything up.
In your dashboard, click S2member>General Options
You will be presented with this screen:
With the free version of this plugin you can add four different paid membership levels plus a free level. Unlimited Membership Levels are only possible with the paid s2Member Pro.
If you set the “Open Registration” option to “Yes”, , you’re unlocking “/wp-login.php?action=register“. When a visitor registers without paying, they’ll automatically become a Free Subscriber at Level #0. The s2Member software reserves Level #0; to be used only for Free Subscribers. All other Membership Levels [1-4] require payment.
The plugin also has recurring payment option and the member will be re-billed every cycle until the member cancels their subscription.
The defaults are Bronze Member, Silver, Gold and Platinum, however you can name these according to the titles of the courses you ant to sell.
WordPress adds user roles ‘s2Member Level #’ accordingly.
Security Subscription Key… Encrypts your private membership data to secure against hacking. Click ‘auto generate’ and then copy and paste your unique key into notepad and save it somewhere safe!!
S2member allows us to fully integrate with our PayPal accounts so that everything is handled seamlessly.
However there are a few things you need to set up in S2member and your PayPal account.
If you are using PayPal as a payment option then you will have to fill out all of the required fields. You will need your:
You will have to access your PayPal account to find these details. Once you enter them you will be asked if you want ‘Developer/Sandbox testing. Make sure you select ‘NO’ when your site is live.
Enable Button Encryption… I always select ‘YES”. This will produce encrypted PayPal buttons, which makes it safer for you!
Enable logging routines… Select ‘NO’. If you ever experience any issues then turn this feature on and you can view all of the logs to detect errors!
PayPal IPN Integration… This does not require you to enter any details but you do need to login to your PayPal account and enable your IPN
>Account profile > Instant Payment Notification Preferences > Enter settings and turn IPN ‘ON’
PayPal PDT Identity/Auto-return Integration… Login to your PayPal >Account Profile > Website payment preferences > Make sure the auto-feature is turned ON
You will then be shown a PDT token. You have to enter it
Sign up confirmation email…. This is already pre-filled for you but it allows you to edit the confirmation email that will be sent to your new member after they have completed payment.
This is useful and you should customize it
Automatic EOT behavior… This tells S2member to cancel a members account if they cancel their subscription payment, open a dispute or have a refund.
Go to S2member > PayPal buttons
Fill in the options.
Once you have filled in the options simply hit ‘Generate Button Code’
Copy the code that becomes highlighted and then simply paste this code onto your ‘subscribe’ page that you created earlier.
You can also set up buttons for several levels (courses):
You’ll be happy to know that s2Member handles cancellations, expirations, failed payments, terminations (e.g., refunds & charge backs) for you automatically. If you log into your PayPal account and cancel a Member’s Subscription, or, if the Member logs into their PayPal account and cancels their own Subscription, s2Member will be notified of these important changes and react accordingly through the PayPal IPN service that runs silently behind-the-scene.
The PayPal IPN service will notify s2Member whenever a Member’s payments have been failing and/or whenever a Member’s Subscription has expired for any reason. Even refunds & charge back reversals are supported through the IPN service. If you issue a refund to an unhappy Customer through PayPal, s2Member will be notified and the account for that Customer will either be demoted to a Free Subscriber or deleted automatically (based on your configuration). The communication from PayPal → s2Member is seamless.
If a User signs up for a monthly Subscription on Jan 1st, and then cancels their Subscription on Jan 15th; technically, they should still be allowed to access the site for another 15 days, and then on Feb 1st, the time they paid for has completely elapsed. At that time, s2Member will remove their Membership privileges; by either demoting them to a Free Subscriber, or deleting their account from the system (based on your configuration). s2Member also calculates one extra day (24 hours) into its equation, just to make sure access is not removed sooner than a Customer might expect.
WPAM (WP Affiliates Manager) is a free affiliate software that embeds itself right into WordPress. It has a free version.
Affiliate Manager integrates with S2 Member through this plugin.
S2 Member integrates with MailChimp and AWeber.
You can have your members automatically subscribed to your AWeber or MailChimp email lists (i.e., newsletters / autoresponders). You’ll need an AWeber/MailChimp account and your List IDs. You will ALSO need either an API Authorization Code.
This is how the plugin works:
Here is the documentation and a set of videos that walk you through the setup process:
The plugin integrates with MailChimp, AWeber and Convertkit.
Since registration for your online course is done through WordPress, you will more than likely run into the situation where the user signup emails sent by WordPress are not arriving.
I am not going to go into the details of this email delivery problem – it has to do with the method WordPress sends out emails.
What you need to know is that the problem doesn’t come from your web host’s email service – even when you have no problem sending out emails from your domain email, WordPress notification emails may take hours to arrive or not arrive at all. Obviously this would be disastrous for your business, however it is easy to fix.
After setting this up, your email will arrive in seconds.
You can also use their service for your email marketing needs, their basic plan costs $9.95 /month and allows you to send 40,000 messages/month. They also have very good email deliverability. (Make sure you check out their terms of acceptable use, e. g. you can’t send affiliate marketing emails.)
I mentioned that the plugins I recommend have the ability to connect with AWeber, MailChimp, etc.
With the email problem fixed as above, you now also have an alternative way to send out emails with the Newsletter plugin. It also has a very affordable S2 Members extension for $16.99.
If you want to see how an actual WordPress online course looks like, you can check out the demo course I built with the Thrive Apprentice plugin. (I will be releasing my actual course soon.)