Josh Levinson just contributed a new add on for Paid Memberships Pro: PMPro Roles. The plugin adds a WordPress Role for each Membership Level with Display Name = Membership Level Name and Role Name = ‘pmpro_role_X’ (where X is the Membership Level’s ID). Use this plugin to apply special WordPress Capabilities to a Membership Level or in conjunction with third party plugins like Nav Menu Roles to display special menu items based on the user’s role.

View or Download the Add On


  1. Upload the ‘pmpro-roles’ directory to the ‘/wp-content/plugins/’ directory of your site.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. That’s it. No settings.

Comments (59)


Is there a way I could associate my already existing WordPress roles to the PaidMembershipPro levels I create?

You can assign multiple roles with 3rd party plugins. If you are using User Role Editor, it gives the ability to add “Other Roles” on the user’s profile page.

Hi! I really like the plugin idea. Integrating membership levels with WP user roles really multiplies the possibilities for combining PMP’s functionality with other plugins that rely on user rolls.

The plugin, seems to work well assigning the respective user role it is supposed to.

However, in the process, it apparently deletes any other user role that has been assigned previously. That basically makes it impossible to combine PMP with any other plugin that makes use of user roles.

Is this by design, or am I missing something?

Is there any way to change the behaviour to adding/removing user roles based on the membership level *without* altering the other user roles? I know your big competitor does this, but I would rather work with PMP if possible. I cannot code in PHP, but I am absolutely willing to add some custom code somewhere, if that’s an option.

Thanks for the good work,

Most people use the User Role Editor plugin in combination with this plugin to map specific capabilities to the role created for the membership level: Since capabilities are really what the role is protecting, you can instead map a capability to the level’s role and add/remove features as needed. This plugin previously did not map any core WP roles to the membership level role that was created but we are now giving the membership level role all the default capabilities of the “subscriber” role in WordPress.

Any updates on if we get this to also work when Membership Level is changed on “Edit User” screen in admin?

Much of our team has access to our Member settings, but role changes are restricted to super admins only for security reasons.

I believe this should still change roles when a user’s level is changed in the admin. If the role setting is there, that should/may take precedence. One thing to note is that we don’t allow users to get the admin role when their level is changed. Here’s the code that fires on level change:

If it’s not working, please open a ticket in our paid support so we can look into this further and work on an update.

Hi Mike,

You should be able to manually assign a role to existing members by navigating to their WordPress Profile (User > Edit User) and changing their role.

Hope this helps!

I was agreeing with most of the comments above until I actually went a checked a setting. Once installed I was able to go to Appearance>Menu> and in the menu items structure I am able to limit access to menu items based on membership levels where before the plugin it was simply default wordpress roles.
This worls great for me since now aside from limiting access to pages, a completely different navigation menu and sidebars will display based on membership level. Essentially a whole different version of the site I can display based on membership levels.
Thanks for the work, it has helped my project immensely.

What is the best way to assign a specific membership level to every new user/subscriber that register to my WP site? I want every new user with the subscriber role to be assign a specific membership level by default. Right now the way its working is that every new user/subscriber I have to manually assign a membership level. Thanks!

Hi there,

I have found that this plugin works if someone purchases a level, or is someone cancels their level via their account area, but this plugin does not work if someone’s level is changed via the WordPress ‘Edit User’ screen. I.e. a person’s user role remains unchanged if their membership level is changed or removed via the WordPress ‘Edit User’ screen.

Is there a quick code fix I could perhaps add to this plugin which would correct this?

It would be excellent if that would be possible, as this plugin is not really 100% practical because of this small omission.

Many thanks,



I bought a template with a core-add ons and PMP was included in it. There is also the PMP Role plugin. This template includes PMP with a public license so I do not have access to PMP support.

I would like to know how to synchronize the roles of PMP (membership level) with the role of WP (user).

If there is a code to integrate, which one?

Thank you.

We’d be happy to help you work through your setup of the PMPro Roles add on – we provide support via our members only forum for PMPro Core or Plus members.

There is no public license of Paid Memberships Pro – your theme/plugin author may have bundled our add on in their theme, but this does not include a support membership or access to our add ons – see for options.

I deactivated/deleted the plugin but the roles still exist in my database and are being displayed in adminimize. How do I remove the roles completely?

@jason Will your plugin automatically convert the user’s role once the subscription level has been processed? In other words, if someone is on “Subscriber” (by default), once they purchase a subscription level, will their role go to the new ‘pmpro_role_X’?

Thank you for your response, Jason. Yes, I am not able to have a subscriber’s role change after paying for a level. My test flow:

• User_A sign up for site
• User_A gets Subscriber role as default
• User_A purchases a subscription level
• This subscription level is “Contributor” with more rights, set under role manager
• Issue: User_A is still on Subscriber although payment has cleared, not automatically being switched to Contributor

Thank you for your help.

So What does the plugin, ‘PMPro Roles’, found in the addons section of the current release plugin do? I activated it thinking it was going to allow me to assign a WP user-role to each membership level. The benefit of doing this allows you to expand the capabilities of PMPro with respect to a myriad of other plugins and processes. In combination with User Role Editor Pro you can significantly control the members experience…

I will look into – In the meantime I’m going to add my voice to the many others who believe there is great value in this as a core option.

The PMPro Roles plugin should work well for you. It will automatically create a role for each membership level (so role name is same as the level name) and assign members to those roles.

The other code you linked to can be used in place of PMPro Roles to change the role of specific members to specific roles.

If you are comfortable using Role Editor Pro, I think the PMPro Roles plugin would be a good fit for you. Let me know if that plugin isn’t working for you or if you have a more specific question about it.

You can find it on GitHub for free. I’ll look into this. We don’t generally charge for addons that have been contributed this way. I’ll follow up with Josh and look into our update system.

Yes. The plugin automatically creates a role for each level and assigns that role to members. The code gist you linked to can be customized to give members existing roles, e.g. author role. Both have their uses.

it appaers this plugin is pretty useless. doesnt do anything or change anything.
all my users are already given subscriber roles and adding this plugs doesnt change anything..
Guess I will deactivate it and delete

You’ve moved on, but for others: Paid Memberships Pro uses its own table to keep track of a “membership level” for each member and uses that to restrict content/etc. We don’t by default use the built in WordPress roles to manage membership functionality (there are cases where you want users with different roles to have the same membership level, and we can generally avoid unknown issues and manage things better using our own association). However, if you DO want to have roles assigned based on membership level, this post explains how to do that.

Does this plugin downgrade a user back to the default role (subscriber) once their membership expired, or payment bounces, etc.?

hi there..i just this plugin have a capability to auto role user yearly?..i mean..this year user A assign as role1, and then next year user A automatically assign as role2, and so on using specific there any possibility for doing this?

Hello! This is so great

I am somewhat new to doing things like this, and I have hired a web designer to do some php and otherwise work for me. What I have done is gotten the Directory Portal Themeforest theme, and am trying to match it with PMPro.

The tricky part is that with the theme, in order to create an “item” you have to sign into your WordPress account. So what I am hoping to do is “connect” PMPro and WordPress so that once a user signs into their PMPro membership on my site, they are automatically signed into their WordPress acount and can create an “item.”

Does this add-on solve my problem? Or do I need my developer to solve it? And if so, how would he do that?

Thanks so much!

Hi, Mike. It would depend on how the directory portal theme works, but I believe that something like this code ( is all that would be needed to make sure users who have purchased a certain level had access to create content. We could do this development for you as part of a little help here project ( or we could try to walk you through it in the member forums.

So does this allow me to assign users to a normal WordPress role or does it only create new ones? I need, very specifically to ba able to simply assign users to the built in WP roles on subscription.

Hi Kimberly,
I think that connection with membership level/WP user role have to be a must for a membership system.
Shouldn’t be easier have a simple checkbox in level creation like “Want associate a WP role to this level?” and, if checked, display a list of WP roles to associate (and, may be, a second list where to choice in which user role fall down when subscription ends).
What about?
Thanks in advance


Thank you for this suggestion – the higher ups (and when I say that I mean my husband Jason and I!) are very judicious when choosing core features into PMPro that aren’t needed for all cases. This is how we have managed to keep the core plugin lightweight, uncluttered, and easily extendable. The roles add on allows you to use a capability manager to assign higher tier capabilities to the associated PMPro role so for now that’s how we are approaching this request. You could also use this code recipe to assign a higher-tier role by level:

Thanks for quick reply Kimberly.
Ok, for you this is a secondary feature.
I don’t agree but respect your opinion.
Thanks a lot for your work on this plugin and for sharing it.


Hello, I agree with macitaly, this would be very beneficial, this is probably the only thing that in my opinion would make this plugin perfect. I have a e-commerce store and I have VIP members who can see certain limited items and prices and a plugin that I use already creates these roles for these members. I cannot assign these members to their roles with your plugin. I have to sign them up and then afterwards manually change their roles in the backend. If you added that function it would eliminate that step for me. Is this a premium feature?

Hi, Kimberly. This looks like a great solution for what I’m trying to do, which is allow restricted, guest posting/blogging based on membership. However, I’ve uploaded, installed, and activated the plugin, and I can’t seem to find set what memberships are given which roles. Do I just go inside the plugin itself and edit the code? Thanks!

Leave a Reply

For faster support related to issues on your specific site please open a ticket in our members support area.

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