WordPress has many uses that most of us are exceedingly familiar with. It can be a blog, business website, art portfolio, e-commerce store and so much more. Over the last few years another use case has become more and more popular: WordPress as a Learning Management System (LMS).
While I do not know for sure, I imagine that using WordPress as an LMS grew from many bloggers’ desire to create and sell e-courses to their readers. However, as the niche has evolved, its uses (and advantages) have been noticed by more than just bloggers. Organizations as varied as fast food chains, call centers, grade schools and universities are using WordPress as an LMS to replace systems that have traditionally been overly complex, bloated with un-used and/or unwanted features, and priced in the thousands of dollars instead of free or around $100.
Combine those advantages with the world’s most popular content management system–one that’s easy to use, may already be powering your website, and is easy to find tutorials/developers for–and you’ve got a recipe for success. Which is why in today’s post I’m going to provide a quick overview of the various ways you can use your WordPress install as an LMS.
What You Will Need
In each instance you will need your own self-hosted WordPress install to work with. After that, you’ll have to choose which approach works best for you and acquire the tools necessary to pull it off. The “basic approach” below is literally just using WordPress as is, but with a specific menu structure and posting sequence. In the interest of not confusing your readers it would probably be best if this were the only thing that particular site is used for as the site hierarchy could get muddled otherwise.
The next option, the “restricted content” approach, takes advantage of any plugin that forces users to register and/or pay for access to specific blog posts (or custom post types) which you’ve arranged into an e-course. This is a great way to keep your course content separate from your regular blog posts and even turn a profit if you are so inclined.
The final option that I’ll be covering today is a complete “turn key” approach. As you might imagine this method uses one of a few premium LMS plugins for WordPress that come ready-to-use with little to no hacking, tweaking or setup required.
The Basic Approach:
The Restricted Content Approach:
- Your choice of content restriction or membership plugin. Some options include…
- And many more
The Turn-key Approach:
- Self-Hosted WordPress Install
- Your choice of a turn-key LMS for WordPress plugin. Some options include…
Creating Your WordPress Learning Management System
As I mentioned above, each approach is going to require a different execution, but the underlying principle behind each are the same: organize your content into easy to find and follow courses/lessons. In most cases you’ll want to make it possible for anyone to sign-up for your course (i.e. register as a user of your WordPress install); the exception being a private training course for specific staff members, in which case you would just send them usernames manually.
To enable sign-ups, navigate in your WP Admin to Settings > General > and select “Anyone Can Register” and then click “Save Changes”. After this the process will look different for everyone. Below I’ve mapped out the basics of each approach.
The Basic Approach:
With nothing but a basic install and a theme of your choice (or even one of the standard free themes each install comes with) you can create a free WordPress e-course. “But why?” you might ask. Why go through the trouble of creating an e-course with WordPress if you’re not going to charge for it?
There are a lot of good reasons: you might want to gain sign-ups by offering a free course; you may believe in a cause and want to spread awareness via quality free learning materials; or the material you really want to teach requires a “pre-requisite” and a free course seems to be the best way to point potential customers to your premium product(s).
Another practical reason is that WordPress is becoming a viable option for companies who need to train staff or new hires internally. For a business interested in testing the viability of virtually training new hires, current staff, or volunteers without spending money on a big learning management system, this first and basic approach could make a lot of sense. Once created, they can always upgrade to a more fully fledged LMS plugin or restricted content approach if need be. So let’s see what the basic approach actually looks like and how to pull it off.
In this instance you’ll want to think of each blog post as a lesson and each category as a course. For example, you might want to create a course on how to properly groom a cat. Because…I don’t know, let’s say you’re a vet or an animal shelter worker and you have to train volunteers.
First, you’ll want to go to Posts > Categories and create a different category for each course or course level. Let’s say: Cat Grooming 101, Cat Grooming 102, and Cat Grooming 103; because you’re thorough.
Next, you’ll want to create a menu that makes it easy for your cat grooming volunteers to register and begin the learning process. Navigate to Appearance > Menus > and create a site structure that works best for you.
For our first example I’ve chosen to have a static home page, which you can accomplish by navigating to Settings > Reading > and selecting the static page option; a “volunteer registration” link, which you can create by adding “.php?action=register” to your wp-login like so: yourdomain.com/wp-login.php?action=register; and finally, a courses link, which is really just a link to the blog with our three new categories nested underneath.
The front end now looks like this…
With this setup you can simply add new blog posts, assign them the proper category, and number them accordingly. For example, on our demo site when you click “Cat Grooming 101” under “Courses” the first post to appear is “Lesson 01 – A Basic Cat Bath”.
At this point, the rest is all in creating the lessons via new blog posts and publishing them in the proper order. But for many, this approach leaves much to be desired. What if you don’t want every person who visits your site to have access to the course material? What if you want only certain user roles to have access to certain courses? What if you want to charge for your courses?
In these cases, you can keep the same basic setup, but add a simple plugin to the mix that allows you to put various access restrictions on your content, including payment options. Which leads us to our next approach.
The Restricted Content Approach:
For this next approach I’ll be using and by Pippin’s Plugins. However, I encourage you to check out the other plugin options I listed above and choose the one that best suites your needs.
As things stand on our example site, we’ve got a simple way for volunteers to register (although, this doesn’t have much use yet except to provide the site with their name and email address) and read through a series of lessons we’ve organized into courses. It was simple to set up and it’s no doubt easy for our volunteers to understand. But let’s say you, the vet or cat shelter worker/owner in our example, didn’t want to have a second site for training volunteers and you needed a simple way to work these e-courses into your existing site–which already has several pages and a blog you update regularly.
That’s where either Restrict Content or Restrict Content Pro would come in. With Restrict Content (which is free in the WordPress plugin directory) all you need to do is install the plugin, activate it, and navigate to Settings > Restrict Content. Once there, simply write a message you’d like users to see when they see or try to access content they do not have permissions for. Click “save options”.
Next, navigate to your e-course posts and open each one in the editor. You should now see a new meta box titled “Restrict this content”.
Select the user level you’d like to have access to that particular post, click “update” and you now have a post that is off limits to anyone not registered to that particular user role.
Anyone who is not logged in to that particular user role will see your message when trying to access that piece of content via the e-courses link in the main menu or when they come across that post amongst your other blog posts. If you’d rather not have your e-course lessons show up in your blog feed at all, I recommend using another free plugin called .
Once installed it gives you the options (on the individual post editor page) to completely hide your post from just about everywhere except where you want it to show up.
Using the above settings on our example site I was able to make it so e-course posts do not show up anywhere except under the main menu links under “e-courses”. If an unlogged in user clicks on that link they will still see the message I wrote in the Restrict Content settings. If a logged in user clicks that link then they will see everything their user role has access to. In this way, I effectively separated the normal blog posts from the e-course content entirely while also making the course work accessible to the appropriate logged in users only.
Now let’s talk about what to do if you’d like to charge for your e-course(s). In that case, all you really need to do is swap out your free Restrict Content plugin with its premium version: Restrict Content Pro–which costs $42 for a single license. In the pro version you have a lot more options all around, but for the purposes of this post I’ll stick to just the changes needed to register paying customers.
First, you’ll need a new registration page that lists your premium options. Navigate to Pages > Add New > and create a page called “Register”. In the body of that page use the registration form shortcode as seen in the image below.
Next, visit the new sidebar menu titled “Restrict” and navigate to the “Subscription Levels” option. Create whichever payment option you would like. You have the ability to create a one time or recurring payment at any price you’d like. These options will show up on your new registration page.
Finally, you’ll want to go back to your menu settings and swap out your current registration link with a link to your new page. Once saved, your new registration page should look like the one below.
To begin using this form to register new customers and accept payments simply navigate to Restrict > Settings > Payments and enter your PayPal email address. Next, go to the “Restrict this content” meta boxes of whichever lessons you’d like to charge for and make sure the restriction settings match the subscription levels you just created.
Simple as that! But not quite as simple as our final option, which, if you’re sold on the idea of using WordPress as an LMS already, I’d highly recommend.
The Turn-key Approach:
Personally, I’m a content guy. I enjoy tinkering with code and mixing and matching plugins like I did above when I’m curious or I don’t have anything better to do. But if I’ve got something I want to create, I’d rather get right to it. That’s why I’m a big fan of plugins like Sensei by WooThemes (which I’ll demonstrate below) and the others I’ve listed above.
With these plugins the focus is less on user roles and compartmentalizing specific pieces of information (which you can still do to an extent) and more about making the teaching/learning experience itself an enjoyable one. Not to mention that for a lot of advanced design and functionality, you’re only paying between $90-$150 (approximately). Depending on which plugin you choose of course.
With Sensei, the experience begins upon installation. Within just a few clicks you’ve not only installed and activated the plugin itself, but also several accompanying pages with their own templates and design elements. There’s the Courses page, My Courses, My Profile and a few others. Each with their own look.
Additionally, WP Admin now has two new options on the main sidebar: Sensei and Lessons. Under Lessons, you’ll find a submenu similar to that of the standard Posts submenu. In fact, lessons and courses with this plugin are custom post types. This means that they’re automatically separated from your regular blog posts, with their own tags, categories and archive pages.
To demonstrate, let’s revisit our cat grooming example. With the other two approaches we thought of categories as courses. Here, courses are their own content type. To create one we simply go to Lessons > All Courses > Add New.
This is where you would enter in your course description, feature image, excerpt, etc. You’ll notice on the right hand side that you can create course categories, set course pre-requisites, or mark the course as featured. You can even link a WooCommerce product if you’d like to make the course premium, which I’ll demonstrate shortly.
Next, you’ll want to add some lessons. Navigate to All Lessons > Add New or simply click Add New under main Lessons menu.
Obviously this would be were you insert your main lesson content. Additionally, you can add an excerpt, set a lesson length/complexity, embed a main video, even add a self-grading quiz!
On the right-hand side you’ll notice that you have lesson specific tags available, you can link the lesson to a course, enter an order for the lesson within said course, and again, add a pre-requisite if needed.
After you’ve created the course and added several lessons, it will look something like this when published…
You’ll notice the nice little button up top. If you’ve set the course to be premium then it will appear with the price as well. This can easily be accomplished by creating a basic virtual product in WooCommerce and linking it to the e-course you choose.
The start and/or purchase button is visible only to logged in users and once clicked will automatically link that course to their account (using the familiar cart and checkout features of WooThemes to power all purchases). It also creates a progress bar above the lessons for that course, keeping users engaged and motivated.
The user can move the progress bar forward by completing lessons. This is done by either finishing a quiz at the end of a lesson or marking it as complete.
If that user visits the “My Profile” link after starting a course, they will see a page like this.
If they are not a logged in user, they will be prompted to register before being able to start a course.
As you can see, the front end experience for users is well designed, simple and enjoyable. On the backend, it’s much of the same. Under the Sensei menu I mentioned earlier, there are options for Analysis, Grading, Updates and Settings.
On the Analysis page you’ll be able to see the total number of courses, total lessons, total learners, average courses per learner, average grade and total completed courses. As well as an exportable page of learners and their basic activity.
On the Grading page you can see all grades, ungraded quizzes, graded quizzes and quizzes in progress. You can also choose to grade quizzes manually in case you have inserted essay questions or just want to check over the answers yourself.
Updates is exactly what it sounds like and the Settings page is mostly concerned with setting your display preferences–such as featured image size, excerpt link, etc. With Sensei and the other turn-key plugins, almost everything you need to get up and running is already configured upon installation. The rest is personal preference or dictated on a case to case basis. If you do end up having questions though, each of the turn-key plugins I’ve mentioned have extensive documentation and a lot of video tutorials for almost every use case you can imagine.
Some Fun Options
So we’ve seen how using three different approaches we can more or less create the same basic e-course functionality, with each approach offering different pro’s and con’s from price point to advanced features. You’ll have to decide for yourself which approach is the best one for you, but whatever you choose there’s a lot more possibility just beneath the surface. Here’s a little taste…
- Try using to spruce up your registration process or to add quizzes in the basic or restricted contact approaches.
- Add to gather feedback.
- for added resources or to easily convert an existing hard-copy lesson into an e-course.
- Combine any approach with to make things more social.
- Gamify the learning process via the various badge/gamification plugins available through the plugin repository or by independent 3rd parties OR use the built in badge systems/extensions offered by the turn-key plugins.
There are so many possibilities when using WordPress as an LMS that it can make your head spin. My hope with this post was to provide three relatively straight-forward approaches with the basic instructions for each included. But I also wanted to tease a lot of the amazing possibilities that I didn’t have the time or article space to explore.
I think we’re still in the beginning stages of WordPress as an LMS and it’s only going to get better as more people experiment and contribute to the conversation. As the platform continues to grow and evolve, I believe learning on it will too.
Have you created an e-course with WordPress? Do you plan to? What questions or concerns to you have about using WordPress in this way? Drop your comments or questions below and let’s talk about it!
Article thumbnail image by baranq / shutterstock.com