How-to › Selling special products
How to Sell Membership Video Content
Put lessons, courses or a video library behind a membership. You choose where the video lives, protect the page, add a preview for non-members and test. 11 parts.
Quick links
Where to find it:WP Admin › Pages › Add New
Before you start
What you are building
What you need, what the store protects and what it does not.
How video membership works
What you need and what the store protects
no stored settingsWhat you need. WP EasyCart PRO or Premium, Stripe, and a membership product. If you do not have one yet, follow How to Sell Membership Content on WordPress first. This guide picks up where that one ends and covers what is different when the content is video.
The idea. Your videos sit on ordinary WordPress pages. You protect those pages, or the part of a page that holds the video, so only people who hold your membership product see them. Everyone else sees a preview and a way to join.
What the store protects. WP EasyCart controls who sees a page, and who sees the content wrapped in a membership shortcode. It does not control the video file or the video host. That is why the first decision is where the video lives.
The steps: choose where the video lives, build the members page, protect it, add a preview for people who have not joined, give members a way back, and test with a real purchase.
Set it up
Five steps
Choose the host, build the page, protect it, add a preview, give members a way back and test.
Step 1. Choose where the video lives
YouTube or Vimeo unlisted, your media library, or another host
no stored settingsYouTube or Vimeo, set to unlisted. The easiest choice. The host serves the video and carries the bandwidth. Unlisted means it is not in search or on your channel, but anyone who has the address can watch it. Keep that address off any public page.
Your WordPress media library. Upload the file and it plays from your own site. Fine for a few short clips. Large files load slowly and use your hosting bandwidth. The file has its own web address in your uploads folder, and anyone who has that address can open it, whatever you lock.
A video host with private embeds. If a video must not be shared at all, use a host that lets you restrict where a video can play, and check its own settings. That protection lives at the host. WP EasyCart does not add it.
For most stores, unlisted YouTube or Vimeo videos on a locked page is the right balance. Decide now what a leaked link would cost you, and pick the host to match.
⚠️ Careful: A membership lock protects the page, not the video. Anyone with an unlisted video address, or the address of a file in your media library, can watch it without logging in.
Step 2. Build the members page
An ordinary page with the video and your text
no stored settingsGo to Pages › Add New and create a page such as Video Library. Add the video the way you normally would. In the block editor, paste a YouTube or Vimeo address on its own line, or add a Video block for a file from your media library. In Elementor use its Video widget. Add a heading, notes and downloads for that lesson around it.
Publish the page. Do not link it from a public page yet, and do not worry that it is public. The next step protects it.
One page per video, or one page per lesson, works best. Each page can then be locked, linked and shared with members by itself.
Step 3, method A. Lock the whole page
The WP EasyCart Limit Access box
no stored settingsUse this when the whole page is for members. It is the simplest method, and the safest for video, because a visitor who is not allowed never receives the page at all.
Edit the page. In the block editor the WP EasyCart Limit Access box is at the bottom of the Page tab of the sidebar. Under Option 1: Restrict by Product pick your membership product by name. Then fill in the redirects with full addresses:
Redirect – Not Logged In + Not Authorized: your login page.
Redirect – Logged In + Not Authorized: the page that sells the membership.
A page with no redirect is not locked at all, and logged-out visitors are only sent away if the first redirect is filled in. Update the page. Administrators are never locked out, so test as a customer, as in Step 5.
Every video page can use the same membership product. To sell separate courses, make one product per course and lock each course’s pages to its product. Pick more than one product on a page and a customer needs to hold only one of them.
Step 3, method B. Show a preview clip to non-members
One page, two versions: the clip for everyone, the full video for members
no stored settingsUse this when you want a free taste on the same page. The trailer is normal page content and stays public. The full video goes inside a membership shortcode, so it is never printed for anyone who does not hold the product.
In the block editor, put the trailer first, a normal video or embed. Below it add a Shortcode block holding both shortcodes:[ec_membership productid="12"][/ec_membership][ec_membership_alt productid="12"]Join to watch the full lesson.[/ec_membership_alt]
The number is your membership product’s ID, the number at the end of the product editor’s address, product_id=12. Several IDs go in one attribute with commas and no spaces. The first shortcode holds what members see. The second holds what everyone else sees. Put your join link there, such as a button to the membership product page.
Anything WordPress can turn into a video works between the tags, because the store runs the content through WordPress shortcodes when a member opens the page. The example uses WordPress’s own shortcode. An embed code from your video host works too. In Elementor, put the whole pair in a Shortcode widget.
What each visitor sees. A member sees the trailer and the full video. A visitor who is not logged in sees the trailer, the store’s login and register form, and your join message. A logged-in customer who is not a member sees the trailer and your join message. Members who log in from that form land back on the same page.
💡 Note: Put the trailer outside the membership shortcode and the full video inside it. Nothing inside the shortcode is printed for a visitor who is not a member.
What you see as the store owner
Administrators see both versions, labelled
no stored settingsPreview a page with these shortcodes while you are logged in as an administrator and you see the member content and the non-member content together, each under a heading that says which is which. Members never see that. To see the real thing, test with a customer account in a private window.
Step 4. Give members a way back
Membership URL, menu and email
no stored settingsOn your membership product, open Type & Behavior and set Membership URL to your main video page. After they buy, members get a link to it on the order confirmation page and on their subscription in My Account. The link disappears from My Account once the subscription has ended.
Add the page to your site menu as well. A visitor who is not a member and clicks it lands on your join message, which is the best place to sell the membership.
Step 5. Test it with a real purchase
Stripe test mode and a private window
no stored settingsSwitch Stripe to sandbox in Settings › Payment and register the webhook in your Stripe test dashboard. Then, in a private window that is not logged in as an admin:
1. Open the video page. With method A you should land on your login or join page. With method B you should see the preview and the login form, but no full video.
2. View the page source and search for the full video address. It should not be there.
3. Buy the membership with Stripe’s test card 4242 4242 4242 4242.
4. Press the membership link on the confirmation page. The full video should play.
5. In your admin, open Orders › Subscriptions. The subscription should read Active.
When it works, turn test mode off.
Good to know
Where protection stops
What stays public, the caching problem, and the usual reasons a member cannot watch.
What stays public
Where protection stops
no stored settingsThe video address. An unlisted YouTube or Vimeo link works for anyone who has it. A member can share it. A media library file works the same way. Tell members the videos are for them, and choose a private host if a leak would hurt.
Your preview. Whatever sits outside the membership shortcode is public, so it can be read by anyone, including search engines.
Other pages. A lock protects the page it is on. If you paste a video address on another page, a post or an email, that copy is not protected.
A former member. A locked page checks for an Active subscription every time it loads, so a member who cancels or stops paying loses access at once. Shortcodes are more forgiving: they also accept any approved order that contains the product, so a cancelled member can keep seeing shortcode content. For a video library you want to switch off when they leave, use method A. The membership guide explains why.
The caching gotcha
A cache can show one visitor’s version to everyone
no stored settingsPages that change with the visitor need to skip your page cache. The membership shortcodes do not tell your caching plugin or host to do that. If the cache stores the page once for a member, a visitor who is not a member may be shown the full video. If it stores the non-member version, a paying member may see the join message.
Exclude your video pages from page caching in your cache plugin or with your host. Then test again in a private window, logged out and logged in.
⚠️ Careful: Test in a private window, logged out and then logged in as a member, after every change to caching. A page cache can undo a lock without any error.
If it does not work
The usual reasons a member still cannot watch
no stored settingsA locked page opens for everyone. At least one redirect must be filled in, and Redirect – Not Logged In + Not Authorized must be set for logged-out visitors to be sent away. Use full addresses. Administrators are never locked out.
A member sees the join message. Check the product ID in the shortcode, or the product picked in the Limit Access box. Open Orders › Subscriptions and confirm the subscription is Active.
Text shows where the video should be. The shortcode is not inside a Shortcode block, or the video tag is typed wrongly. Put the pair in a Shortcode block, or in Elementor’s Shortcode widget, and check the closing tags.
The video shows for the wrong people. See the caching section. Clear the cache after you change the page.
The membership link is missing after a cancellation. It is hidden on purpose once a subscription has ended. The subscriptions guide covers what happens to a subscription when a payment fails.
Selling video files members download instead? See How to Sell Downloads on WordPress.
Keep going
Related panels
Setting up the membership product on Type & Behavior.
Manage your members’ subscriptions.
Sell several membership levels and let members switch.
Create the roles the userroles option checks.
Ready to run your store on WP EasyCart?
Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.



