Assign and withdraw role on an user based on membership – WPMU Membership2

WPMU Membership2 plugin has an addon that you can use to assign extra capabilities to an user when he joins in a membership, and when the user left the membership the capabilities are withdrawn. But, the problem is, even it says “Assign role”, it doesn’t assign role to that users but just assign the capabilities of that role.

So, if you need members of certain role, you won’t get those members in the member list. Even, if you have other plugin that makes some operation based on role, won’t work here. Let’s find a solution.

The following snippet will allow you to set different role based on membership, you will need to know membership IDs though. In the following example, if ID is 1343, I want to assign those users “editor” role, “author” for 1345 and “administrator” for 1348. Take a look:

https://gist.github.com/bappi-d-great/794bd6a18eecb59f8f27

Now, if the user’s membership is deactivated or cancelled, we need to assign back “subscriber” role to that user. I have used same code for cancel and deactivation operation, you can assign different role if you want:

https://gist.github.com/bappi-d-great/cf1c337e5b7cdba77eb3

You can add those codes in your functions.php in the theme, if you think your theme won’t be changed. Otherwise mu-plugins is the best solution. To use mu-plugins, go to /wp-content/ and find the folder with name ‘mu-plugins’. If there is no folder in that name, then create a folder, name it ‘mu-plugins’, create a file inside that, give any name you like and paste the code in there. You don’t need to activate that plugin. Mu-plugins means must use plugins, so it will be activated automatically always. If you use mu-plugins then add a php start tag at the beginning of the code.

2 Comments on “Assign and withdraw role on an user based on membership – WPMU Membership2

  1. Just discovered your blog, Ashok! Great stuff as usual from you. Obvious limitation in this case is the part about needing to know membership IDs. I’d be very interested in seeing a work-around for that, as it would make the new membership plugin much more widely compatible with other plugins. Thanks for all you do!

    • Thank you for your comment. Knowing membership ID is not very difficult though, you can hover over the “Show” link at the right column in All Memberships page where you can see the membership ID: http://take.ms/4zZRP

      But, I would like to see a column for membership ID, that will make things more easier to find 🙂

      Thanks again.

Leave a Reply

Your email address will not be published. Required fields are marked *