S2 Membership Level, can you change the order to UN-incremental?

Hi, I own S2Member Pro, and have for a number of years - great software in my opinion.

Question please: I understand the membership levels are in order incremental order, but is it possible for say a level 2 member to being able to see: level 2, 4, 6 and NOT be able to see level 3, and 5?

Instead of it being incremental? Or as WELL as being, just by adding/setting different rules?

It would be so useful.

Thank you in advance :blush:

Regards

Tony Roberts

You should define the rules that control access to the content blocks (or pages etc) you want to limit in a way that only gives access to the levels you want (use is level 2 instead of can level 2, then combine with ORs and ANDs)

Thanks for the reply.

You cannot do that from the S2member software from what I can see, and I’ve checked everywhere, everything is still in incremental order. For example, a user that can see level 3 content, cannot then see level 5 without seeing level 4 content.

It’s like if each page had a different ‘e-book’ sold, then if a user bought e-book x on level 2, and bought e-book y on level 4, but had not paid for the e-book on level 3, he can still see the e-book he had not bought (level 3), from the way S2member is set up, being incremental. There seems to be no way to stop it.

Like I said, it would be very useful, and I’m surprised nobody has mentioned it before.

Regards

Tony

Yes, you can, at least for blocks of content using s2Member conditionals.

This is what I mean:

[s2If current_user_is(s2member_level2)]
    Some premium content for Level 2 Members that will NOT show to any other level.
[/s2If]

Instead of this:

[s2If current_user_can(access_s2member_level2)]
    Some content for Members who are logged in with an s2Member Level >= 2, therefore appearing to level 2, 3, 4, 5 and so on.
[/s2If]

So, for example, if you want a block of content to only be displayed to certain users, you can use the conditional below:

[s2If current_user_is(s2member_level2) OR current_user_is(s2member_level4)]
    Content that will show to Level 2 and Level 4 members but nobody else
[/s2If]

I don’t know if you can block a page from being opened but perhaps it’s just easier to have a conditional like the one above and use an [else] to show everybody an upsell information so they can upgrade, for example, or just nothing etc.

Another option is to use custom capabilities.

I hope this strategy can be useful to you.

:slightly_smiling_face:

1 Like

Thank you, I appreciate that, I’ll take a look :blush:

Regards,

Tony

1 Like

s2If conditionals are a great way to have that control.

You can also edit the level role capabilities. See: https://s2member.com/kb-article/s2member-rolescapabilities/#toc-2501f80b

:slight_smile:

2 Likes

Brilliant! I never assigned capabilities to roles using s2Member.

:slightly_smiling_face:

1 Like

Thanks for the input, I appreciate it.

I also wonder if something this would work?:

Regards,

Tony