S2member and thrive apprentice - and functionality suggestion for s2member

Hi there,

I’m hoping someone can help. I’m wanting to use s2member along with thrive apprentice to sell stand alone courses. Apprentice takes the member levels created by s2member to attribute them to a course in order to restrict access to the course. There are 2 large problems:

1 S2member levels are incremental so are not appropriate for stand alone courses
2 Thrive apprentice doesn’t support custom capabilities.

Obviously if I have 2 unrelated courses at level 1 and 2 I don’t want the level 2 course being able to see the level 1 course.

I have s2member pro so have 100 levels - more than enough. It would be really helpful if s2member had the ability to switch off the incremental nature of levels but it does not.

If I used the capability manager plugin to revoke the incremental access as and when required would that solve my problem? so for example I sell one course on level 1 and one course on level 2 No other levels are being used. I go into the capability manager plugin and edit the capabilities for level 2 and revoke access to level one within the plugin.Would this be an acceptable workaround? I would really rather s2member itself could manage this rather than having to use yet another plugin, but would this work?

Many thanks

1 Like

Thrive Apprentice prefers a hosted membership solution, if I recall correctly.

But Apprentice pages are just WordPress pages and you can protect them to give access to your courses.

Maybe progress has been made in this area since I tried to implement something similar years ago, but since s2 doesn’t support multiple roles per user, the solution is to use ccaps as you mentioned above.

Thrive doesn’t need to support them since you’re just using them to give access to the page that Apprentice is on.

The big concern, though (unless this has changed) is all the ccaps and associated page access go away if the membership level does.

The use case you’re describing doesn’t seem to be what s2 was built for.

Hi Ric,

Thank you for taking the time to reply - I really appreciate it.

Without further explanation this point isn’t really making sense to me. My understanding if someone buys two seperate courses the membership levels will be stacked according to the coding in thrive apprentice, so you can attribute multiple membership levels. Clearly with s2member that is currently a technicality because you would only ever need the highest level with them working on an incremental basis.

Again this isn’t making sense to me without further explanation. Don’t ccaps work independantly of membership level?

I’m also talking to thrive themes about this issue seperately and they seem keen to find out what S2Member recommends. S2 is currently “advertised” by thrive as working perfectly well with thrive apprentice - see this video (which I believe is very misleading):

It was actually a video by Shane from Thrive which put me onto s2member as it was his recommended way of using the old version of thrive apprentice while it was still attached to themes rather than a stand-alone product. I’m keen to make this work, as I’m not really liking Sendowl which is what Thrive now recommends. As I already own S2member I was wondering about using the capability manager plugin to remove the incremental settings of s2member , so that assigning something to a level doesn’t give it access to the previous levels (this could portentially save having to code custom capabilities manually into every single - and numerous - course page).

I had the following message from Thrive themes:

“We haven’t officially tested the capability manager with the Thrive Apprentice and S2 member implementation as we are not sure if the capability manager has the features to change the S2 member user roles down to the level that you’d expect it to”.

The latter bit is what concerns me - as it implies this isn’t a good solution at all. Any advice would be gratefully received.

I wonder whether it would be possible for S2Member to implement a “tick box” setting to remove the incremental functionality from any particular level. That would make the plugin massively more powerful since it would support both incremental levels and a stand alone course/courses. It opens out the audience for the plugin hugely. It would also negate thre need for a plugin such as capability manager (assuming the latter does do what it says on the tin).

I would appreciate any advice anyone is able to give.

Many thanks

1 Like

The question is, does Thrive restrict the course access based on the role you place in the check box or does S2 override this. Have you tried testing a course with level 2 access and then create a user with level 3 access and see if that user can then access the course with level 2?

I also have thrive and apprentice, but in the time being I have ditched apprentice for a Moodle system. I ran into problems with customers who purchased more than one course and that was even when using the sendowl integration.

1 Like

Yeah, this was one of the first things I was on to. Thrive tell me the restriction is done by s2member. My tests say otherwise, but given this information from thrive I’m not confident with that.

This is what Thrive said:

“I’ve checked the issue described, and Apprentice will increment the settings from the S2 as they are designed in S2. The control of access is made only on S2side, so our plugin will not interfere.
Technically, if someone has level 2 access but this level allows access to level 1 from S2 apprentice will allow it.”

Andrew, can I ask what problems you ran into when customers purchased more than one course? I’m wondering whether to operate on 2 membership levels - free subscriber and paid member, and then code custom capabilities into each page of each course with if / else commands - if has custom capability [insert course content] else [insert log in form and link to sales page]. It would be a pain at around 60 pages a course, but that gives s2 total control.

I think the issue I ran into was that I sold one course using S2 pro level and another course using sendowl. However, in all honesty I couldn’t work out the issue as when the customer told me he couldn’t access the course I decided to assign him another level (manually) and then add that level to the course restriction section of apprentice. Even after that he couldn’t access either. It was strange as he could login and could click start course (meaning thrive thought he had the correct permission) but when he tried to click on the first lesson he was bumped to the login page for thrive/WP.

As I had just upgraded another site I had running moodle I decided to take advantage of the stagging site I had setup and I migrated it to a sub domain on the main site I was using for apprentice. All the customers who have been migrated are super happy with the Moodle experience so I decided to ditch apprentice until it is a bit more mature.

Regarding your idea, I haven’t gone deep, but if you find a way to add ccaps to thrive pages then this will solve all your restriction issues. You will only need one membership level (ie paid) and then restrict course access based on ccaps and not on membership levels. For me this solution is the only way to use apprentice effectively with s2 pro and without sendowl.

If you somehow work this out then please share as many people are looking for this.

Reading this, I am wondering why you want to use Thrive? or why you would even want to use Levels. I have over 100 individual courses that can be purchased separately, and a membership that allows access to all of them.

Every paid course is on level 1, but I use ccaps for each course. I have started using Level 2 for my all-access membership to be able to limit the number of downloads (that is the only reason).

The ONLY inconvenience with s2M is that one cannot buy 3 courses in one transaction, but they can buy as many as they want, if they make it one course per transaction.

Great way of explaining what I meant :slight_smile:

But I can see why one would want to use Apprentice since it makes all the content look like a course. They do prefer SendOwl, but also support any membership plugin. So it’s just a matter of leaving them open on the Apprentice side and using s2 to protect pages as usual.

Hi there, and thank you ball for your input. Yes, in an ideal world we’d be using ccaps - couldn’t agree more. Apprentice has a great functional and customisable set up specifically designed for courses - it looks so much better than a straight site, so I will be using it. I say functional, but it is missing the obvious if you’re using it with s2member - c caps. There’s a one click per course option to protect the course to a membership level - much easier than coding c caps into each seperate course page which can be 60 plus. (it would be custom short code needed - which can definitely be done).

I’ve had one person from thrive tell me that it’s s2member controls access so the incremental levels apply, and another who tells me incremental levels don’t apply in this context. To be fair to them they would like to do some testing on my site once we have some definitative advice from S2Member. So it seems Thrive are keen for s2member to intergrate well, and act on that.

Hopefully Christian will be able to give some input on this - obviously after having a wonderful Christmas :slight_smile:

Can you show me how this is done? Sounds like a solution to the issue (apart from having a ccaps solution which world be ideal)

Hey there,

There’s still a question of whether Thrive’s one click solution will work, because it relies on S2Members levels not being applied incrementally (level 4 for example would normally be able to see all the levels below - not ideal if you are selling courses which are seperate from one another). I suspect we’ll find the solution to this early in the new year. Otherwise we add short code for custom caps.

Hi Christian,

Hope you had a great Christmas and New Year!

Do you have any advice for us here? This is getting fairly urgent for my course :frowning:

You could remove the incremental access from levels, yes.

The thing to keep in mind, though, if you’re selling several courses, is that users can only have one level role. They can’t be Level 1 and Level 2 at the same time.

That is what custom capabilities would be good for. They’re regular WP capabilities, though. I clarify that, because perhaps Thrive Apprentice guys are under the impression that “custom” capabilities are something else, it’s just a name for s2 custom access using WP’s capabilities. Maybe Thrive Apprentice does work with WP capabilities?

Does that help? Did I miss something from the conversation that you still need help with?


Hi Christian,

Thanks for the reply, but that doesn’t really help.

Thrive appentice only works with membership roles, and with wordpress you can stack membership levels if it’s programmed in which is what thrive does. You cannot use custom capabilities with thrive apprentice.

I 'm not a programmer so don’t have the skills to go into the php like the capability program asks you to do and am concerned at the disclaimer that there’s no support if I do change things via that plugin.

It seems the only way to get thrive apprentice working with s2member is program in custom capabilities on each course page using custom short code. This it neither a workable nor practical option.

I am at a loss what to do. Thrive have been keen to help but they really need to be in dialogue with s2member to make it work. They were wanting to investigate further with your input.

I’m starting to think my only option is to abandon my s2member pro and advise others exploring this option to do the same.

No one has been able to give me a definitive answer as to how to proceed, and indeed whether soeone on a course sold at level 2 would indeed get access to a course sold at level one even if they didn’t hold level 1.This has been a nightmare and has given me sleepless nights.

Can this be made to work at all? Am I really on a hiding to nothing as I seem to be?

Right, I thought it probably wouldn’t help to solve the issue, but at least to understand it.

Just as one can want s2Member to change so it handles WP roles differently, one could want Thrive Apprentice to handle also WP capabilities instead of only roles.

I can’t say much about Thrive Apprentice to find a solution quicker, because I’ve never used it, or have a copy of it to see what it’s possibilities and limitations are. If I review it, maybe I can come up with something that’s workable for you…


Also, about the courses you want to sell, I imagine you want the customer to be able to purchase several of them, correct?

Thanks Christian,

Sorry for the delay - I’ve not been well at all. Thank you for your reply.

I made the decision to put the infrastructure together last instead of first, which gives us a little more time to figure this out while I’m finishing the course off.

If you could review the situation that would be extremely helpful. Thrive are also wanting to help sort this out. They mention S2 Member as compatable with Thrive Apprentice in this video https://thrivethemes.com/online-courses-membership/. My understanding however is that due to S2 Members incremental level settings this will not work as they say. We need to know that a level 3 course for example won’t get access to a level 2 course. I’ve had conflicting answers from thrive on this point as to whether s2member is controlling access to the thrive apprentice course, or whether thrive apprentice is the gatekeeper, merely using the levels created by s2member.

I’m working on a beginners photography course. After that is complete I will want to add several more specific photography courses to sell independantly of each other.

How best would you go about reviewing the situation? Would it help if I PM’d you a user account to my website? I know I’m not the only one wanting to use s2member with thrive apprentice. It was actually a recommendation from Thrive that put me onto s2member in the first place.

Many thanks in advance.

Hi Christian,

Hope you are OK, sounds like you’ve been having a difficult time.

See message above.

Can we look at this in more detail and try to get to the bottom of it?

Many thanks,


Hi Christina.

I’m sorry you had a hard time, I hope you’re back to normal now and doing well. Thanks for your good wishes. Sorry I didn’t get to your reply sooner.

Thanks for the link to their video. Yes, it shows how to integrate with s2Member, using the level roles. They don’t mention using custom capabilities…

If you want to use roles, you already can do it. If you want to have several courses, you could create a level for each. You can remove the incremental access with a simple customization, but the user wouldn’t have more than one level at a time, though.

I really want to help you with this, but I don’t see a quick fix yet…

If you only use one level and sell the custom capabilities, the user can have one ccap or ten, but Thrive Apprentice would only see the same level.

Hmm… Maybe with a hack, you could pick up when a user gets a ccap, and give him an additional role for it, which would be seen by Thrive Apprentice… https://s2member.com/kb-article/rolescapabilities-via-php/

That seems viable…


Hi Christian,

I hope you are OK in this really strange time we’re all experiencing. I may actually have had the virus, but it’s hard to know because here in the UK the testing process is far from ideal - as is the whole situation everywhere. I really hope you’re keeping safe.

You say I can remove the incremental access by easy customisation. That may be easy for you - but not for me - I’m useless at IT :-). Is the way to do that via the publish press capabilities app? Is it safe to do it that way? If so I think it’s an app I can handle as I’ve had a look at it without meddling. I assume it’s a case of revoking level access as a capability to all relevant course levels. So If I had courses at lever 11 and 12, for the level 12 member I’d revokethe capability of access to level 11?

Thrive do actually say that while you can’t add two levels via their interface, it can be programmed in, and that’s what thrive apprentice does - I think. Are you saying that’s incompatable with the way s2member does things? By way of example I hold the role of administrator and editor, can I not additionally hold the roles of level 11 and level 12? In the video thrive is saying that this is how it should work - go to 2 mins in:

I’d far rather use custom capabilities for the reasons that you say, but Thrive Apprentice doesn’t support this. I think it would be a case of puttin if/else commands on every course page, which would be a logistical nightmare even if I was good at IT.

Thrive apprentice works on roles, which seem to be what s2member levels are, not capabilities. So I’m limited to roles/levels.

I can try some testing on whether you really can have multiple levels via the apprentice app. Certainly that’s how it is designed to work, and it’s been live over a year so it’s reasonable to assume that’s correct. I will need to be able to remove the incremental access to levels first before I can properly test. Is the way to do that via the publish press capabilities app? Id it safe to do it that way? I think that would be by far the easiest way to do it, if it works. If you can genuinely remove the incremental access I can’t see how it would not work.

I’m trying to understand your hack…Surely that would still require users to have more than one role at the same time if I had more than one course, which is something I’m planning to do. So if the hack you suggest works, the solution I was proposing above would still work?

Are you saying users can have multiple roles, but not multiple levels? I thought that s2member levels were roles? Can someone not purchase access to say level 11 and level 12 in seperate transactions, and hold both roles?

I’m now really confused…