Want to sell yoga classes online from your own WordPress website? In this real-life use case we will build exactly that with just two plugins: WooCommerce takes the payments, and Restrict for WordPress makes sure your video classes are visible only to customers who paid – for 30 days after their purchase. No membership platform, no coding, and by the end of this walkthrough you will have the complete setup, from the product to the restricted class page to video hosting.
The idea: sell yoga classes online without a studio
Let’s say you are an aspiring yoga instructor and you feel you can make a good income teaching what you enjoy. However, you are a bit tight on resources – renting a space for face-to-face classes is not an option right now. You are familiar with the concept of video classes, but it seems too complicated to set up. Luckily, it is not complicated at all, and by the end of this post you will see that for yourself.
What you need
From the website side of things, all you need is a WordPress site with the Restrict plugin and WooCommerce installed. You will also need a camera – and chances are you already own a decent one if you have any relatively recent smartphone.
You will use the camera to record your yoga classes along with your explanations. If you are more tech savvy, you can add titles or background music to the videos – that is entirely up to you, and nobody knows better than you what your classes should look like to keep customers hooked.
Step 1: Configure WooCommerce and create a product
Once you install WooCommerce, configure at least one payment gateway so you can take payments from your customers. WooCommerce supports hundreds of payment gateways, so you are covered wherever you are on planet Earth.
After that, create the product you will be selling – Restrict will use it as the content restriction criteria, so that only customers who purchased this product can access your classes. For simplicity, we will stick to a single simple product: navigate to the Products area of WooCommerce, create a new simple product, enter a title (e.g. One Month Subscription) and set the price. That is the WooCommerce part done.
Step 2: Restrict the class page for 30 days after purchase
Let’s say that you will be offering your customers access to your yoga classes for one month after they have purchased a specific product.
With Restrict installed, this is easy to achieve:
- Create a new page or post that will contain your yoga class.
- Find the dropdown menu labeled Content available to – this is Restrict’s menu for choosing restriction criteria – and select WooCommerce Users.
- In the option that appears, select Specific product, then choose the product you created in WooCommerce.
- Select Limited time after purchase and set it to 30 days.
When all is said and done, it should look something like this:

In a nutshell, you have set the content of this page to be visible only to users who purchased a specific WooCommerce product, and only for one month after the purchase. Quite simple, right? You can read more about how this feature works in our time-based content restriction guide.
Step 3: Embed your class videos
Since we are dealing with online video classes, an important question is how to embed the videos into the restricted content.
The easiest option would be uploading videos directly to your website through WordPress’ Add Media functionality. However, this is very ineffective: all of your users would stream video directly from your server, which quickly eats up your bandwidth quota and gets really expensive. Instead, look at specialized video streaming services:
- YouTube – the obvious default, but with a major caveat: privacy settings. It is quite difficult to keep a video from showing up anywhere on YouTube (you want it accessible only from your website, since users pay to view it) while still being able to embed it easily on your classes page. Luckily, there is a plugin that makes this much easier – it is not free, but it simplifies things a lot. You can find more about it here.
- Vimeo – much more oriented toward this kind of usage, with options ranging from free to premium memberships. Access restriction for uploaded videos is thoroughly explained in Vimeo’s video privacy post. Especially on paid plans, you get granular control over everything – restriction and embedding options, player customization, call-to-action buttons and more features that can help grow revenue.
As you can conclude, you can hardly get away with zero cost for hosting your videos. Count it as a cost of business operation, and keep it in mind when deciding on the pricing of your yoga class subscription.
Important: require customer accounts
For this whole setup to work, customers must make purchases on your website as registered users. That is the only way your website can later identify them and check whether they really purchased the required product.
Luckily, WooCommerce makes this easy to enforce:
- Navigate to the Settings area of WooCommerce and click the Accounts and privacy tab.
- Make sure the option Allow customers to place orders without an account is unchecked.
- For convenience, check Allow customers to create an account during checkout so new customers can create an account during checkout without any hassle.

Useful tweaks
To make it easier for customers to log in and immediately access what they paid for, place a login form directly on the restricted page. Navigate to the Restrict area in your website’s back end and click the Login Form tab. There you can adjust the login form if needed and copy its shortcode, then paste it wherever you want the form displayed. More about this feature is in the login form documentation.
Another thing you can (and should) do is set a custom message for visitors attempting to view the restricted content. Navigate to the WooCommerce area of Restrict and specify the message you want them to see. If you require a specific product, use the [rsc_woo_product_links] placeholder – it displays the product title with a link to the product page, funneling the customer to purchase the required product in a few clicks and get access in a matter of seconds.
How does this look on the front end?
Frankly, this depends heavily on the theme you are using, but here are a few screenshots to help you visualize the concept.
When a customer tries to access one of the restricted yoga class videos without having purchased the required product (or without being logged in), your custom message may look something like this:

From this page, a customer can navigate straight to the required product or log in to access the content immediately. If they need to purchase, they are taken to a shop page that might look like this:

And once they finally access your restricted yoga class, they will be met with something like this:

All of these screenshots will vary depending on your theme and how you set up your content, so take them as illustrative examples only.
Conclusion
As you can see from this simple example, it does not take much to build a website that lets you sell yoga classes online. We focused on the basics and merely scratched the surface: you could create several products, each granting a different amount of access time (two months, three months, six months, a whole year, and so on), or many different pages with different classes, each requiring a different product at a different price. The rest is completely up to you and how you want to monetize your classes.
The same recipe works for any kind of paid content – see our broader guide on selling online courses on your website. And if you want access tied to an auto-renewing subscription instead of a fixed window, check the WooCommerce Subscriptions setup. Restrict for WordPress licenses (1 site, 5 sites or unlimited, yearly or lifetime) are listed on the pricing page, each with a 7-day free trial.