Selling a product but without access to existing levels

I have an existing site with levels 1-6 with members on all levels and no issues

Now I have a separate product a course that I will sell separately and they will have zero access to any of the other levels. From the custom capabilities vids I watched, it appears I would add those capabilities for the new product to an existing level, but then they get access to the other level items which I do not want.

What am I missing here? How do I just sell access to the new product without giving them access to anything else?

Your assistance is much appreciated. Thank you

Hi Joe.

You can sell them just the custom capabilities. WP Admin > s2Member Pro > PayPal Pro-Forms > Capability

The only requirement is to first be logged in. So you can have them register for free, login and sell them the new ccap.

These can only be sold buy-now, not subscriptions. Only levels can be sold with a subscription at the moment…

Another option is to create a new level, even if it’s higher, remove the access it gives to lower levels, and sell them that.

Does that help? :slight_smile:

Hi Christian,

Yes it helps very much and I appreciate the links as well.

I like the idea of them having their own level with the different capabilities and removing access to the other levels. I have a group of different items like this to release this year and each will be individual access products. Im just reading through everything now is making my head swell, lol sorry

Basically, I have levels 1-6. This product will be called email and will be tied to level 7
levels 1-6 have access to 7 but 7 will not have access to 1-6
level 7 users will only have access to whatever ccap they are tied to, in this case, email and nothing else

At the moment my priority is creating the correct string of capability so I can start preselling access. The product doesn’t launch until 3/1 so I can come back to the balance of the page script later and just direct them to a landing page for now. Am using stripe, Can I just tag them as level 7 and come back later to limit the access to the other levels?

Thank you

Oh, sorry! I just realized I linked you to the wrong article earlier… This is what I meant…

levels 1-6 have access to 7 but 7 will not have access to 1-6

1 to 6 don’t have access up, only down, e.g.: level 5 has access to 5 and below, but not 6 or above. Level 7 would have access to 7 and below, but you can edit that as explained in the article.

level 7 users will only have access to whatever ccap they are tied to, in this case, email and nothing else

Yes, if you give the ccap to users at that level. It’s fine to control access with the ccap, but it’d also be fine to use level 7 for the access.

Can I just tag them as level 7 and come back later to limit the access to the other levels?

You can, but then then they’ll have access to all the lower levels until you customize it.

It doesn’t really take long to change the level access using a plugin like the User Role Editor or Enhanced Capability Manager, for example.

And don’t forget to lock the s2 roles and capabilities as mentioned in the article.


Thank you for your detailed response.
Nothing like turning easy into an unneeded abundance of effort.

Upon, reading everything that you sent and looking at your suggestions, I had to ask myself why make it harder on myself

Custom capabilities on level zero is a nobrainer, less chances of mucking everything up and the lack of additional plugins at a time when site speed is so important seemed the obvious choice. Ive got my entire site loading in under 2 sec on mobile so I dont want to add plugins.

This was too easy with the ccap on level 0 and then bulk adding the ccap to existing members.

Thanks for your help and advice

1 Like

Very good! That’s a great solution too.

I didn’t mention it because I thought you wanted to sell it as a subscription, which is only possible for levels. If it’s a buy-now, the individual ccap is great.

I’m glad you sorted it out in such an elegant way. Thanks for the update!

Let me know if you need help again.


Hi Cristian, I have one more question in regards to this.

I use thrive themes. In their apprentice portion, they dont really give you access to the admin for the page for example as you would have in the list of pages. As a result Im unable to just simply tag a page with the custom capability. I will only have four pages total that this custom capablity will apply to, I have the ezphp installed but thrive still makes it difficult to use.

I found this code below. Would this be added to the functions php file or each page individually? Also using the example I found in the s2 site and added what Im guessing would be the proper syntax to declare multiple page ids. Am I even close?

$ccaps_required = array('email','tools');
$ccaps_pageids = array('123','456','789');
update_post_meta('s2member_ccaps_pageids', 's2member_ccaps_req', $ccaps_required);

Thanks for your help


Hi Joe.

That code doesn’t seem correct. I may be wrong, though… Do you have a link to the thread where you you copied it from?

Another option, although not bulk, is to use s2If or s2Drip on each of the pages you want to protect.


Yikes, So I just read a long thread here about thrive apprentice and s2Member and I’m not so sure it was resolved. Nor do I understand it completely. If it hasn’t been resolved and you need access to a site for testing etc. No issues, just let me know. S2member and thrive apprentice - and functionality suggestion for s2member

What I think is good news is when I look at my user profiles, I see the custom capability for those that have paid already and it lists them as subscribers with this on their detail page access_s2member_ccap_email.

So if that is assigned to the user at purchase, I’m not sure why the PHP code, once the syntax is correct wouldnt work. I’m not sure where to put it and if the code is correct. They are assigned at the very least a subscriber 0 when they pay plus the ccap is added and visible in their profile, So to me, it makes sense that we tag the specific pages with the right PHP code assigning the ccap to it

The post where I found the code that I tweaked is CCAP with Apprentice Course custom posts

I saw another post about adding it in the muplugin folder as a new php file, ok no issues. Ive done that, easy peasy. I really like thrive themes, but they are a marketing company long before they are programmers.

Thank you for your assistance

I also got this but on my lightweight tennis stringing machines I don’t have issue