How to Set Up a Free Mini-Course in WordPress

How to Set Up a Free Mini-Course in WordPress

There are lots of ways to give visitors to your site extra value. One such way is to let them take a free mini-course.

Instead of just putting up the course and letting anyone access it, you could use the opportunity to get people onto your mailing list.

In order to do that, you’ll need to put your course behind a “paywall,” even if the cost is only the submission of their email address.

And so that’s what we’re going to go over in this post — setting up a free mini-course behind a payway.



Email Services

Before we start with the nitty-gritty, first a word about email services.

Because there are so many different possible email services out there (if you’re not simply using your WordPress system), we can’t begin to cover them all, and so that part you’ll need to work out for yourself.

Essentially you need to look for a way to integrate user signups to your site with your mail service. Again, as each is different, we can’t really begin to go down that road.

If you use MailChimp, however, then WPMU DEV makes a MailChimp plugin that automatically integrates new users to your site with your MailChimp list. It’s super easy and works like a champ. In fact, that’s what we use for our own mailing list here at WPMU DEV.

A Plan of Action

OK, now onto the nitty-gritty.

There are basically two sections to this tutorial – setting up your content and then putting it behind a paywall.

We’ll go over setting up your content first.

And then for the paywall section, we’ll be using Membership, which is the free version of WPMU DEV’s full Membership plugin.

Setting Up Your Content

Of course there are lots of ways you could go about arranging your course. In my sample “Great Espresso” course, I’ll be using Pages.

My course has 6 sections – an Intro page and 5 lesson pages.

I’ve made the 5 lesson pages child pages/subpages of the Intro page (i.e. the Intro page is the parent page).

I’ve also ordered them according to which comes first. This will help me later.

You can do that in the Write/Edit screen when you’re setting up your pages. You can also edit those settings in the All Pages area.



Of course there are a number of ways you could choose to employ navigation as well. This is simply the way I’ve chosen. You may have other ideas.

Pagelist Plugin

The first thing I’m going to do is install the Page-list plugin. I mentioned this the other day in a post on Page plugins.

At the bottom of the Intro page, I put a shortcode that will list all the subpages to that parent page.


As I set up all the subpages earlier, and I ordered them, they should come out just like I want.


And then at the bottom of each lesson page, I’m going to put a link back to my Intro page and then automatically generate a link to all the other lessons.  In my case, it looks like this.

(33 is the Page ID for my Intro page. You’ll need to find your own.)

The Intro:
[pagelist include="33"]

And here’s how it looks.


(The appearance of your links will be determined by your theme. I’m using the default Twenty Twelve theme here.)

The nice thing about these shortcodes, of course, is that if I add a new lesson, I just need to make it a child like the others, and it will be included in my list of links automatically.

Other Navigation Options

There are other navigation options at your disposal, of course. And you may use those in place of or in conjunction with the solution above.

I think it’s important to get some navigation right on the page in this case, and so personally I would want something like the above.

You could also do something like make a completely new sidebar for these pages with a plugin like Custom Sidebars.

Or you could create a widget that will show up only for logged in users.

Or you could show a certain menu only to logged in users.

Setting Up the Membership Plugin

OK, now onto the setting up the paywall and protecting our content.

Once again, we’re using WPMU DEV’s free Membership plugin here.

This may get a little complicated, but it’s mapped out step-by-step, and so if you just follow along, things should work out in the end.

Type of Site

After the plugin is installed and activated, go to the first link that simply says “Membership.”

From here, we’ll make some choices. In this example, we’re going to choose a Standard membership site.


If you choose the Dripped Content option, then you can set your course up so that members can only access certain content after a certain day. For example, you might have 5 levels, making the first level available on Day 1, the second level available on Day 2, etc.

If you choose the Advanced option, then the wizard will assume you know what you’re doing and disappear.

After you’ve made your choice, click Next.

Creating Levels

In the free version of the Membership plugin, you are only allowed two levels. In the pro version of the plugin, you can have an unlimited number of levels.

We’ll just use one level in this example.

If you’re putting this course on a site that already has other content on it that you want left open to the public, then you’ll want to make sure the box that says “also create a level to control what non-members can see” is left checked.

We’ll also choose the “Free subscriptions gateway” in the pull-down menu.


Look at Your Access Levels

When that’s done, you can click on the Access Levels link on the left and see the levels you’ve just created.

In my case, I have the “Members” level that I created, and then I have the “Visitors” level that was automatically created for me for non-members.


A number of the terms in the plugin can get confusing (it’s pretty much unavoidable), and so it’s a good idea to try to match what’s what. So if you see that your Access Levels are the levels you’ve just created, it helps you remember that for later and distinguish it from other terms.

Setting Up Options

Next we’re going to go the Options section (last the list on the left).

There’s a lot here, but as we’re just setting up a simple, free course, we won’t have to deal with all of it.

In the first tab, the General tab, I’m going to set my “Stranger settings” to Visitors.

Remember the Visitors level that was set up was for non-members? That’s what “stranger” means here – someone not a member of the course.

And then I’m going to set the “User registration” section to “Members.” When someone registers for my site, they will automatically be put into my Members level (which is the only real level I have).


Membership Pages

The next section, Membership Pages, is pretty self-explanatory. This is where you set up your registration page, the page where visitors go after registering, etc.

You can set these up as you like.

Something that seemed convenient for me was to set the “Protected content page” to redirect to the Register page. In this way, if a non-member tries to access a protected page, they’re simply redirected to the Register page.


When advertising your course or giving people links, of course you’ll want to send them to the Register page.

Another important thing to note here is that these pages are actual Pages in your WordPress system. And while the important stuff like registration forms will be generated automatically for you, you can also go to those pages in your admin area (Pages > All Pages) and add more content to them if needed.


A Few Notes:

  1. There’s an option for a pop up registration, but you may run into issues with mobile browsers here, so that’s something to consider.
  2. In this simple free course, there won’t be any “subscriptions,” so you don’t need to worry about that.

Content Protection

Content protection basically lets you hide parts of pages while leaving other parts (such as the first paragraph) open to the public.

You can decide if you want to do that or not. But in my example, I’m going to keep it simple and hide all of my course from non-members. So I can skip this section.

Downloads / Media

This section lets you mask the location of your media. You can decide whether you need to do that or not, especially for a free course.

Other Tabs

The last three tabs in this area are something you probably don’t need to concern yourself with in a case like ours. But check them out and decide for yourself.

Subscription Plans

The Subscription Plans area can get a little confusing if you’re actually making people pay for one plan or another, or if you have more than one plan.

However, in our present case, it’s pretty simple because we only have one “plan,” and it’s free.

If you go to Membership > Subscription Plans, you should see your one plan already there.


If you hover over the title and edit it, you will see two basic areas to pay attention to.

First, there’s a visual editor. The graphics or text inserted here will go on your Register page.


And here’s the registration form on the front end.


Below that, there is the Membership levels area. If you used the wizard at the beginning to set things up as I have done, then you should already see your “Members” access level inserted there.

In this area you can set how long the “subscription” is for. If someone were signed up for a monthly subscription, for example, you would set this for 1 month in the serial mode. That means it would renew every month.

However, because this course I’m setting up is free, and I just want to keep things simple, I’m going to set the “Mode” to “Indefinite.” The “Period” won’t matter in that case. The user will continue to have access forever regardless.


Protecting Your Content

OK, now that everything is set up and ready to go, we’ll actually start protecting content behind our membership wall.

Of course that means you need to have content to protect, so for now we’ll assume you have the content you want to protect ready to go. If not, you’ll need to at least make some blank pages where your content will eventually end up.

As mentioned, I’ve decided to put my content on Pages. I’ve got an Intro page and then 5 lessons.

Back to the Access Levels

Near the beginning of this set up, we took a quick look at the Access Levels. We want to go back there now. (Membership > Access Levels)

I’ve got two levels there – Members and Visitors. I’ll deal with Visitors first.

Set Up Negative Rules

Hover over the Visitors title and edit it.

On the next screen, there are Positive Rules, Negative Rules, and Advanced (both).

Because Visitors are non-members, I want to use the Negative Rules here. Essentially, I’m going to set up what Visitors CAN’T see – i.e. my mini-course.

Because my course is set up on Pages, I’m going to drag the Pages section on the right into the Negative Rules area. And then I’m simply going to check all the Pages that belong to my course.


Be sure to update that, and you’re finished there. Visitors (i.e. people who haven’t signed up) will not be able to see those pages.

Setting Up Positive Rules

Setting up the Positive Rules for Members is a little more complicated. Or at least we’re going to make it a little more complicated in the beginning so that we don’t run into problems down the road.

If we simply went in and did what we did for the Negative Rules, but in reverse, it wouldn’t exactly work the way you might think.

When you use the Positive Rules, you’re saying that this group can see these Pages, but you’re also saying this group can see ONLY these Pages.

That’s not a big problem. We could just check ALL the Pages. But if we ever added another public Page in the future, then we would need to come back and make sure that Page was checked so that Members could see it.

That would be easy to forget, and probably not something you’d want to mess with anyway.

Thinking about it from another angle, essentially we want Members to be able to see ALL the content on the site – that’s all the public content and all the mini-course content too.

So if there were a way to open all the content on the site up to Members, that would do the trick.

And, of course, there is a way to do that.

Using URL Groups

We can allow a group of members to see all the content by using URL Groups. So you’ll want to head to that section now.

When you get there, you’ll need to create a new group called “All Site Access” or something equally descriptive.

URL Groups can get much more complicated than this, but what we’ll be doing is pretty simple.

In the “Page URLs” box, put the root domain of your site, and then after the trailing slash, put (.*), like this:*)

This gives access to any URL that begins with your root domain. (Of course if you’re using a subdomain, then you’ll need to account for that.)

At the bottom of the page, make sure to switch the “Regular Expression” pull-down menu to “Yes,” then update that page, and you’re set for this section.


Back to the Access Levels Once More

OK, now that the URL group is set up, we’ll just need to go back to Access Levels one final time in order to put the rules in place for the Members.

Back in the Access Level area, edit the Members level.

From the right sidebar, drag the “URL Groups” section into the Positive Rules.

You should see your newly created URL Group there – “All Site Access.” Check that, update it, and that’s it. Your Members now have access to the whole site, including your mini-course.


That’s It

And that’s it. Your mini-course is now limited to only those who have registered for it. Hopefully your visitors will find value in it, and you too get something in return.

If you run into issues with this, you can check out the Membership plugin page. You can find links to a complete PDF instruction manual, as well as detailed video tutorials. Even though that’s the pro version linked to there, it will be almost completely the same as the free version.

Photo: private club