The current version of Paid Memberships Pro only allows users to have One Membership Level Per User at a time.

If a member checks out for a different membership level, their previous level is cancelled (any attached recurring subscriptions are cancelled) and they are given the new level.

Having just one level per user makes sense for a certain kind of membership site where different levels are basically upgrades or downgrades around one featured product. This is the user case PMPro was initially developed for.

However, some sites would benefit from allowing their users to purchase multiple membership levels at the same time or over time to add additional subscriptions to their one WP user account. The clearest example of this is an E-Learning type site where each membership level corresponds to a “course” on the site with users able to purchase one or more courses concurrently.

This is not about a new version of Paid Memberships Pro.

Work to allow users to purchase multiple memberships was started in 2013, but we have sidelined that work until further notice and a very alpha version of Multiple Memberships Per User as an Add On is now live on a few sites..

Update: The Multiple Memberships per User Add On is in Beta and available on GitHub. The Add On works well with the core PMPRo plugin, however most of our other Add Ons still need to be updated to respect the fact that users can have more than one membership level at a time. This work will take one to two years at least. Feel free to use the MMPU add on in the meantime, but also take a look at the work arounds below which often work as well or better than using the add on.

This post is about the different ways to work around having multiple memberships per user with the current version of Paid Memberships Pro.

Work Around 1: Use the Addon Packages Plugin

If you only need to support one time payments for access to each course/package/level/whatever, then you can use the Addon Packages plugin in lieu of regular membership levels.

View the Addon Packages Plugin

The basic steps to use PMPro Addon Packages for multiple membership levels would be:

  1. Setup a free membership level or paid “base” level for your members.
  2. Create a basic WordPress page for each course/level/package/etc.
  3. Enter the one time price for each page in the PMPro Addon Packages settings for the pages.
  4. Direct customers to the page which will have a link to checkout for the addon package.
  5. To lock down related content use the pmproap_hasAccess($user_id, $post_id) function in your code to check if $user_id has purchased access to $post_id.

This post describes how to sync Paid Memberships Pro with WP Courseware using Addon Packages with a page setup for each course. (This works independent of the official PMPro for WP Courseware bridge plugin.)

Work Around 2: Adding Fields to Checkout

Instead of having a separate membership level for each offering, you can have one main membership level (or a few based on other factors) and add a checkbox or other field to checkout for members to opt into each course or individual offering.

You can add fields using the PMPro Register Helper plugin API and then use code like this to adjust the price of your level at checkout based on the values of the fields:

Then you can use code like the following to check for the user meta value set by that field when handling access.

With a little bit of programming, you could even automate parts of this. Here is the outline of a nifty plugin to automate some of this:

  1. Add at least one core membership level.
  2. Add additional membership levels to be used as “options” at checkout for the main level. Mark the level as hidden.
  3. Use code to lookup all hidden levels (or a specific set of level ids) to create a PMPro Register Helper field at checkout for the main level.
  4. Upon checkout, adjust the cost of the main level based on the cost of the hidden option levels checked at checkout.
  5. Hook into the pmpro_has_membership_level filter to look if a user has the corresponding user meta for the field specified vs actually being a member of that level in PMPro.
  6. Similarly, hook into the pmpro_has_membership_access_filter filter to check those user meta fields in addition to the values in the pmpro_memberships_users table.

Many other addons or bits of code may still be confused about what “levels” a member has when for instance figuring out which mailing lists to subscribe a member to. And you might have to tweak some more code to handling these cases based on your setup. (This is why adding this functionality to core is so hard.) But this is the gist of how you can go about allowing multiple membership levels on a specific setup.

Adding the recipe to your website

You can add this recipe to your site by creating a custom plugin or using the Code Snippets plugin available for free in the WordPress repository. Read this companion article for step-by-step directions on either method.

Work Around 3: Setup a Multisite Network

When running Paid Memberships Pro on a multisite network, each blog/site that PMPro activated on will have its own set of levels and members. So users in the network can have a membership on site A and a different membership on site B.

In some cases it might make sense to simply setup a new site for each membership offering rather than putting multiple offerings on the same WordPress site.

Setting up and running a multisite network is not always an easy thing to do. So if you don’t have other reasons for wanting to go with multisite, you might want to avoid doing this only to be able to offering multiple memberships.

Tagged . Bookmark the . Last updated: . Titled

Hello, How to get Current User’s Membership Level if the user has multiple membership? I tried to use pmpro_getMembershipLevelForUser () but its returns the single level.
Is there any other function to do that for multiple membership?


Sorry, I forgot to mention a third possibility: to offer several sites creation each one as a “thing” purchase, like in your Addon Packages. Can Site Creation be purchased as a “thing” or as an “access to a thing”? Maybe this could be an easier way to achieve point 1 above setup requirements?

Thanks again.

Addon Packages: Purchase Access to a Page, Post or “Thing” is good in principal, but fails in practice with BuddyPress.

I need multiple memberships (Monthly, Annually) for example. Each one has the same site access but different payment plans BUT I want to monetize BuddyPress groups (Baseball, Football, Hockey), each one with different payment plans (Monthly, Annually).

Membership is required, but groups are optional.

For example:
Customer Joe purchases Monthly membership and Monthly Baseball group.
Customer Bob purchases Annual membership and Monthly Football and Annual Hockey groups.
Customer Jill purchases Monthly membership only.

Addon Packages: Purchase Access to a Page, Post or “Thing” does not allow for monetizing Buddypress Groups.

How do I accomplish this?

Hello Kimberly,
Is this add-on stable now? Language on the Paid Memberships Pro website indicates it is still in beta, just want to make sure the code is solid and we do not have typical beta bugs.
Thank you!


Will this add-on also allow purchasing and checkout of multiple products on the same level? I’m using your WooCommerce add-on to assign a membership level to certain products.

For example, if I’ve added a level 1 membership to my basket, I can’t add a second product if it’s also assigned a level 1 membership.

A Beta Release means that while the plugin is active and stable, it is not fully supported and should be used with caution in a production environment. While the functionality may work well with the core PMPro plugin, most of our Add Ons are not compatible with multiple memberships per user. We are working to update the documentation pages of Add Ons listed in this site to reflect current compatibility or plans to develop compatibility. For more information on this, see this document


You could offer another membership level that is essentially a duplicate of the first. On that membership level, you can accept an initial payment of 3x months worth of your subscription cost (with the discount included), does that make sense? Will that work for you?

I think I found the answer. I’m still testing! Since each level can be set up with access to multiple categories, I simply categorize my pages (with a plugin cleverly called: Post Tags and Categories for Pages).

Level 1 has access to only Category 1 content
Level 2 has access to both Category 1 and 2 content, etc…

I was really hopeful, that there would be a solution for the Multiple Memberships per User. But now I see – after installing the MMPU Add-on – that I cannot do this with PayPal standard. This is automatically switched off, as long as the MMPU Add-on is active…. 🙁
Is there really no way to get the multiple memberships with PayPal standard together?
My former Membership plugin could do that – but the company decided to abandon it.
Thank you for all helpful hints!

We chose to process each subscription separately rather than bundle them together. PayPal Standard doesn’t allow you to create multiple subscriptions during one checkout.

You should be able to use PayPal Standard with MMPU, if it’s okay that users need to checkout separately for each subscription. If not, let us know about that and we will work with you.

If you need to use PayPal Standard AND have the checkout process at once, I think that WooCommerce with the WooCommerce Subscriptions plugin might be able to do that. Check first.

Hi, I’m using the plugin to sell access to some pages. All goes well until a user who has a membership level that has “Allow Signups” set to NO tries to buy access. It forces this user to choose a new membership level (which I don’t want).
Is there a workaround to prevent this please?
Thank you.

I’m assuming you are using the “Add On Packages” add on. If so, you can create a free level that has access to those pages. Users will still have to purchase at the page price, but the add on will default to the free level instead of requiring users choose another paying level.

If you need some other behavior, we’d have to get a bit more information to know exactly what you need. We can help you in the forums and supply the custom code or info needed to get that working.

Any update on this (other than that standard “we have a beta” reply? It looks like this has been an issue for close to 4 years now… and the notes here and elsewhere say it should’ve taken 1-2 years. If its stalled and this is where its stuck, just let me know and I can move on to another solution.


Hi there, I’m using the Multiple Memberships Per User Add On plugin and it works very well. The only bug I’m experiencing is when a customer checks out with PayPal Express, an e-mail receipt isn’t sent to the customer or admin. Emails are sent out fine when Stripe is used. Is there a fix for this? Thanks very much.

If you would like to create a detailed Issue in the Add On’s GitHub repository we can look into it. This is the first report of the error, so it may be a unique problem with your PayPal setup and IPN.


Tengo el complemento instalado y solo tengo este ningun otro complemento. EL problema que tenemos es que al selecionar dos niveles solo mantiene uno.

Para que el usuario tenga acceso a los dos e editar el usuario manualmente.



I have the plugin installed and I only have this one no other plugin. The problem we have is that by selecting two levels, you only maintain one.

So that the user has access to both e edit the user manually.

I can do something?

Thank you

Is this plugin the best way to track if a user goes from a *free* membership level to a *paid* membership level?
Measuring how many visitors convert from free to paid membership is key to site improvements.

Hi @ariel,

We do have a beta copy over on our Github repository that can be used but it is not fully compatible with all other PMPro Add-Ons so it is, at this stage, use at your own risk kind of plugin, so please do be careful if using it.

I’m using the plug in and able to assign multiple levels of courses (membership levels) on the wordpress user page. So far so good.

However it does mess up how a page looks on a user profile. Whether you use buddypress or ultimate member the users dashboard / profile area where they access their profile or access their courses is messed up. The page is lobsided and cropped. Not sure if css can fix it.

Hi Adrian,

If you get in touch with us via the contact form of our Contact us page we can try to take a closer look at this for you. Check this pages footer for the “Contact Us” section.

Hope this helps!

Oh I figured it out… Before I installed this beta plugin I had “Disable New Signups” checked as I’m doing my registrations a different way….but with this plugin it causes the behavior I mentioned above….

So it might still work for us as long as people can’t figure out how to go manually register.

Hey guys….wow we desperately need this plugin to work for us…..I thought it was working however when I create or edit a user I can select the Group but the drop down for Membership level is empty. I’ve tested creating separate groups and putting levels in them and same then. Yes I’ve selected the option to allow more than one selection in a group.

Any ideas?

The add on is stable and being used by Beta sites currently. You are welcome to install and try to use it in a development environment. We hope to fully release this add on in the coming weeks.

About 6 weeks ago, you said, “We hope to fully release this add on in the coming weeks.” Any update on the progress of this? An estimated date would be nice. This could make a big difference for us and what route we choose to go now vs. the long run. Please let me know, thanks in advance.

The plugin is stable and functional. You can find it here:

Most add ons do not work with it yet. We’re working on a public list of those add ons to know which aren’t affected by it, which are (anything that fires on changing membership levels or affects the checkout page/pricing), and updates as we fix the add ons for compatibility.

It will likely take a year at least to update all of our add ons. If you are only using a handful of our add ons, you can test if they work for you with this and maybe help us to update them early for you.

Hope this helps.

HI jason,

Good to hear the plugin is stable and functional.

“Most add ons do not work with it yet” . I presume you are talking about the PMP Addons. When are hoping for all this to be fixed?

(We are planning for the future so I we are eager for a response)

Hi Thomas,

Yes, Jason did mean PMPro Add-Ons, we will be working on the compatibility of our PMPro Add-Ons over the next year or two. We will also be adding a feature to our Add-On pages with an indicator to state whether or not the relevant Add-On is compatible with MMPU or not.

I have many memberships levels, each level is different to other, so I want that a member can buy whenever they want two one or all memberships levels, I mean they have multiples levels without cancel the other one, so is possible that now?


i want to email filter membership level wise if user purchase A memership than send x.html in mail if user purchase membership B than send y.html how can it possible after checkout


Hey Jason,
Is there any option to restrict the NONE membership level to override any other premium memberships. Because in my case a Platinum member if buys a product without any membership level attached his Platinum member gets automatically cancelled.
So kindly let us know the solution if there is any settings or code for any specific level to restrict from getting subscribed.

Sounds like we would need more information about your setup to help you. Please post to the member forums along with info on what other plugins (e.g. sounds like you are using WooCommerce or something to sell “products without any membership level attached”.

what if i want to display payment form ([pmro_checkout]) directly without selecting any membership level? is it possible? how?

We’re working on an addon to allow for MMPU and hoping to have it ready to share sometime this summer. When released, it very likely won’t work with some of our other addons. Over time we will update all of our addons and gists to work in an MMPU context. Use our contact form to email us, and I will put you in touch with the developer we are working on the addon with, and they can likely help you to get setup on it ASAP for a fee. Include as much information as possible about your project and budget.

Any updates on multiple memberships per user? I have a one-off case that would be useful for testing right now, and I am looking a scenario quite soon where I’d want to use it in a more serious way (syndicated content with optional training materials as an additional membership).

cheers… -Adam

Some of the updates have been moved into the core plugin already. We have an addon in alpha that will actually let you checkout for multiple memberships at a time.

We’re now working on getting our addons updated to support this. Nearly all of them break in some kind of way when the one level per user assumption is broken. We’re also working for the documentation. We can help answer Qs in the forums.

Thanks, Jason, I’ll take a look at the alpha. I am using a number of the add-ons (listed), so the level of breakage would be a concern.

Paid Memberships Pro – Add Name to Checkout Add On
Paid Memberships Pro – Advanced Levels Page Shortcode Add On
Paid Memberships Pro – Better Logins Report Add On
Paid Memberships Pro – MailChimp Add On
Paid Memberships Pro – Member Homepages Add On
Paid Memberships Pro – Member RSS Add On
Paid Memberships Pro – Nav Menus Add On
Paid Memberships Pro – Register Helper Add On
PMPro Customizations
PMPro Reason For Cancelling

Sounds like I should spin up a clone of the site to test this stuff, to the extent possible.

cheers… -Adam

> Paid Memberships Pro – Add Name to Checkout Add On
This one should be okay.

> Paid Memberships Pro – Advanced Levels Page Shortcode Add On
The MMPU changes the levels page itself, so the ALPSC would probably override that. Might be okay if you don’t need the shopping cart lite that MMPU adds.

> Paid Memberships Pro – Better Logins Report Add On
Should be okay.

> Paid Memberships Pro – MailChimp Add On
Actually the first add on we’re working on updating for MMPU. Should have an update next week.

> Paid Memberships Pro – Member Homepages Add On
This will obviously get confused if a user has > 1 level. Will just redirect them to the first level the code finds.

> Paid Memberships Pro – Member RSS Add On
I think this one should be okay. I would have to look at it again.

> Paid Memberships Pro – Nav Menus Add On
This will likely get confused about which menu to show for users with > 1 or again will just choose the first level seen.

> Paid Memberships Pro – Register Helper Add On
This should be okay in general. But I can imagine some things breaking with MMPU.

> PMPro Customizations
Depends on the customizations obviously.

> PMPro Reason For Cancelling
I think this one should work as well, but I haven’t tested it.

I just found out my customers can’t access more than 1 membership and creating a separate user isn’t practical as it also needs a separate email address.
I feel thrown in the deep end now that I have set everything up with PMPro and realise there is no ”easy” workaround (the addon option is expensive at $200/year!) or that nobody is working on developing this 🙁
I now have many users and implementing another plugin would mean starting everything from scratch and emailing everyone individually 🙁 🙁 🙁

Sorry for the situation you are in. If you can’t afford the PMPro Plus membership, you can try to find the addons on to use for free. If the work arounds won’t work for you, then you should consider using a different membership plugin.

We’ve tried to be upfront about this limitation of the plugin. Sorry if it caught you off guard.

Re: not offering multiple membership levels per user, WooCommerce Memberships has that feature. I’ve not tried it at this point – there is no trial nor free version.
Your software looks cool, I’m surprised you don’t implement this feature…

Any news on being able to offer discounts codes using the free user level workaround where they pay to access specific pages? After battling with EventEspresso for months, I was so excited for PaidMembershipPro… but this definitely looks like more roadblocks/deal-breakers. Anyone have any recommendations for an alternative?

Unfortunately, not offering multiple membership levels per user is a deal breaker for my use-case. Loved everything else about

are there any new about the multiple Membership Level Per User , i have tray to organise my website with the three solution but no one is optimised , imagine you are using a multiple premium plug in and them , , you must pay for each site ? , imagine you have a different subscription date one is monthly another is every quarter , not easy at all to put the solution in real service website with a multiple option , we must find a solution , do you have any idea how we can help our participe to empower the team to do this work ,

PS :if you are currently developing some things , in this area of the plug in you must integrate a prorated payment in

thank you for all what you are doing
wish you the best

I’d expected this to be part of PMP, I’ll take a look at the workarounds but they don’t sound ideal, this could be a blocker for me.

If you need multiple memberships per user, you should find another system. It’s not on our immediate road map anymore, although I agree it would be great. Let me know what you end up using.

Jason I’ve been using the workaround where the user level is free but they pay for access to pages. The problem is now I cannot offer discounts for access to the pages. Is there any way to do this?

i had created a membership level i.e. Free Level (Price is 0).

So I want that One User can signup this level only one time.

So is this Possible in PM PRO.

This is one of the features I am desperately waiting for. I see many people wanting this feature. Maybe we should think about doing some kind of funding campaign to pay for the feature. I am happy to chip-in.

Yes, I couldn’t chip in much but I would also be willing to throw in a bit of cash to have this feature. There is another plugin with the feature to allow users to have multiple levels, but the styles do not look near as good as PMPro.

My issue is that I’m selling different video series piecemeal, so I need people to have one login and then be able to pay for access to each post category. I will continue to multiply the series of videos, so eventually I will have, e.g., 6 different series. If a member wants to buy access to two different series, I would have to setup a membership level with, e.g., “Video Series 4 and 6,” and I would have to do that for every member who bought more than one series. Moreover, I’m not sure he could pay for just series 6 if he already had series 4, or at least I would have to manually change his status after he bought series 6 and it changed his membership level to series 6 (then I manually change it to 4 and 6 since he already bought 4).

Is there any other workaround to my situation? I don’t really want to do a multi-site thing, because I just post my videos as blog posts and use blog_in_blog to show all the posts on a ‘page,’ and then I want everyone to see the posts and the excerpts, but then have to login or register/purchase to actually see the post (and I *love* the styles of PMPro with the buttons at the bottom of the excerpt and everything – much better than other plugins i’ve tried).

Thanks for any feedback

As I need this fuctionality too, maybe we should indeed get together! How should we set this up?

Is it possible to add the custom page title in the invoice as currently it only shows the membership level and not what they are actually purchasing

If Someone were to do option 3 (multisite) and create subdomains for each service….. example

Would the customers credit card treat each subscription for each site as an individual subscription? Meaning, can they have the a subscription at EACH website? Or would they treat is as the same website because of the core domain

Yes – each site would have a unique configuration of PMPro, you would need to set up PMPro individually on each site (don’t “network activate” the plugin). Each subscription would be unique to each site; the user could have a subscription for and for

I would be very useful, m not understand how the plugin PMPro That syncs with WP Courseware using PMPro Addon Packages. I tried to install it, but it does not work.

Option number 3 is actually very easy. Create a subdomain, or even a folder within the primary domain, load a new copy of WP in the subdomain or folder, then load PMPro. So, it will look like this: http://www.mysite/Course1 and http://www.mysite/Course2. Then link everything carefully, and the user experience will be smooth. Yes, they will have to login to each course, but I think most people can deal with that.

Hope this helps. Mark

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 *