Allow only certain s2Member users additional Wordpress capabilities?

I would like to be able to give only a few s2Member users additional Wordpress capabilities. For example, only SOME of our users with s2Member level 2 should also have the capabilities of Wordpress editors.

I found this post describing the use of Capability Manager Enhanced (Give user 1 s2 member role and 1 wp role) which seems like it would work to grant an entire ROLE Editor capabilities, but I only want to enable a few users.

I thought about using ccaps, but it seems those are only for per-page access, not Wordpress-wide capabilities.

Is there some other way to accomplish this?

Actually, I just found this plugin Multiple Roles, that so far in testing allows me to do what I need:

So far with basic testing this seems to work ok, being able to grant a few users multiple roles when needed.

Anybody have experience with this, or with any other options?

I haven’t used this particular plugin (which looks fine) but I do have experience with multiple roles per user. That experience has been that, once a member has multiple roles, s2Member works as expected in that it recognizes each role and behaves accordingly.

The problem is how to enable each user to have more than one role in the first place. If someone purchases a role through s2Member, then his/her previous role is deleted. So either you need to set extra roles manually or else you need to use a different plugin (or custom code) to handle the selling.

Thanks for the insight, Tim. I’ve seen the behavior you’re talking about – the Wordpress “role” field seems to only accept one entry at a time, and is filled with whatever role was the latest to be added. For most use cases this seems to work just fine, as Wordpress is capable of keeping track of multiple capabilities in the meta_key__wp_capabilities field.

The only problem I’ve found so far is that having multiple roles breaks the MU-plugin I made with code from this post: https://s2member.com/kb-article/how-do-i-send-an-email-when-the-membership-level-is-changed/

It seems that handler’s function can only accept one role. Doing more research.