Subscription Membership for Online Courses with a free Starter Option

Use case: Learning platform with free content and the option to upgrade to paid content at any time (instead of after a set amount of time).

Workflow as experienced by the customer:

  • User reads through sales page and gets two options: free STARTER subscription (forever – restricted access) or paid PRO subscription with monthly or annual payment plans (unrestricted access to everything)
  • There is no time restriction to STARTER, only content restriction
  • At any point, the user can upgrade to PRO to unlock access to everything.

Components and Plugins used

WooCommerce with the following plugins:

Sensei: a WooThemes plugin to create courses

Configuration order: (WooCommerce – ) Sensei – Product – Membership.

This means, first you need to create your courses. Then you create the products that you are setting (access rights to these courses). Finally you restrict the access to these courses based on the access rights you defined in your products.

Be prepared to hop back and forth to streamline accesses.

How to set it up

This work-through indicates the settings that are needed to make sure all components work smoothly together. Thus I will only highlight those settings that are crucial (especially when it comes to the WooCommerce setup).


Make sure to allow for Subscription Switching to allow users to upgrade to the PRO plan at any point.


Please make sure to mark “Access Permission: Users must be logged in to view Courses and Lesson content.


This ensues that only users with an account (who have paid or are on free starter plan) can access the content.

Within your Sensei area, make sure to create different courses depending on the user level you plan to introduce. For example, create one STARTER course and one PRO course to then later give access on a per course basis.

Products (Subscription Options)

Now that your courses are ready, it’s time to add products to your shop. Remember, you are not selling the courses, you are selling the access to those courses.

If you want to allow your users to upgrade and downgrade between different accesses (instead of selling courses on a standalone basis), you only need one product – a variable subscription.

variable subscriptionGo to Products >> Add Products and add a new product. Choose “variable subscription” from the dropdown menu.

Click on attributes and add the billing cycle you want to offer. In this example, we are offering a free starter subscription, a monthly subscription and an annual subscription:


Make sure to activate “used for variations”.

Create the three variations with their respective price tags. For example:

  • Variation Free Starter: enabled, virtual, sing-up fee: 0, free trial 0 days, subscription price: 0 every year, all time.
  • Variation Monthly: enabled, virtual, sing-up fee: 0, free trial 0 days, subscription price: 10 every month, all time.
  • Variation Yearly: enabled, virtual, sing-up fee: 0, free trial 0 days, subscription price: 100 every year, all time.

Note that there is NO TRIAL involved, even though the Free Starter access essentially works like a limitless trial with update option.

At the very bottom of the product page you will find a membership box. Make sure to click on Disable Restrictions in the Restrict Content tab. restrict content

Remember, you want to restrict access to the COURSE CONTENT, NOT to the product itself. You do want people to find the product and be able to purchase it.

Membership Settings

This plugin brings it all together.

Go to WooCommerce >> Memberships and click on the tab “Membership Plans”

You need to create two membership plans here.

One PRO Membership plan, that grants access for those who are paying monthly and annual and one STARTER Membership plan that grants access ONLY for those who chose not to pay (yet).

For the PRO membership, the setup looks like this:

General: add the paying variables to the Grant Access box.


Under “Restrict Tab” make sure that you are adding both the STARTER as well as the PRO course, because paying customers should ALSO have access to the free stuff.

restrict course access pro

Restrict products: leave blank (unless you have special products that only pro members should be able to purchase)

Everything else can stay as is.

For the STARTER membership, the setup looks like this:

starter general

General: add ALL variables to the Grant Access box.

This seems counterintutive, but remember, you are granting access to people who purchased… so if I purchase the Starter plan I want access to the Starter course. But if I purchased the pro plan I ALSO want access to the Starter course. Hence: add every option.

restrict content starter

Now, under RESTRICT content, you will only add the Starter course, as this is the only course your free subscribers will have access to.

Now, users can switch between the products and stop their trial at any point to upgrade to other options.

They will be able to do so when viewing their subscriptions by clicking on the upgrade / downgrade button. (The design will vary depending on your site design).upgrade

Additional considerations

Change the text of the upgrade / downgrade button.

Give a personalized upgrade recommendation to starter users who try to access pro content. You can do so on the Product Page >>Membership Box >> Restrict Content Tab.

custom message

You might also want to look into using Grouped Product instead of one variable product.

Other resources: Building a membership site with WooCommerce Memberships (without Sensei)

Leave a Reply

Your email address will not be published. Required fields are marked *