We have several tutorials for altering the membership levels page using the default [pmpro_levels] shortcode or the Advanced Levels Page Shortcode Add On. This post summarizes several methods to:

It’s a useful guide if you aren’t quite sure of a method to use and want to explore your options.

  1. Reordering the Membership Levels Display

    Navigate to the Memberships > Membership Levels page in the WordPress Admin. Here you can drag and drop the membership levels into the order you would like them to display when using the default [pmpro_levels] shortcode or the [pmpro_advanced_levels] shortcode.

    Drag and Drop Membership Level Order

    If you are using the [pmpro_advanced_levels] shortcode, you can also specify the levels="2,4,1" attribute to force the display in your preferred order. This method will simultaneously reorder the display AND filter out levels you do not want to display.

  2. Dynamically Display Certain Levels Based on the Current User’s Active Level

    Some sites would like to customize which levels are offered based on the current logged-in member’s active membership level. There are two methods to dynamically alter the display of the membership levels page: using the [membership] shortcode or using the pmpro_levels_array filter.

    Using the [membership] shortcode.

    If you need to show specific level options, you can use a series of shortcodes that combine the [membership] shortcode and the [pmpro_advanced_levels] shortcode as follows:

    [membership level="1"]
    [pmpro_advanced_levels levels="2,3,4"]
    [membership level="2"]
    [pmpro_advanced_levels levels="5,6,7"]
    [membership level="0"]
    [pmpro_advanced_levels levels="1,2"]

    In this example, members of level 1 will see details for levels 2, 3, or 4 while members of level 2 will see details for levels 5, 6, or 7. The last portion of the sample above will show the option to check out for either level 1 or 2 for any non-member (level=”0″).

    Note that if you truly need to restrict check out based on existing level requirements, check out this blog post with a deeper tutorial on membership requirements for checkout.

    Using the pmpro_levels_array Filter

    The recipe below demonstrates how to filter the output of the [pmpro_levels] shortcode to show specific levels based on the current user’s level.

    You’ll need a working knowledge of PHP in order to customize this example for your specific needs. Support level members can open a ticket in our support area for help with this function.

  3. Hide Free Levels from the Membership Levels Display

    Here’s a tutorial for hiding all the free levels from display. This is a useful method if you have free levels that are reserved for specific customers or promotions, etc.

    View the Tutorial

    Hiding Specific Levels (by ID) from the Membership Levels Display

    To hide levels using the [pmpro_advanced_levels] shortcode, just exclude them from thelevels="1,2,3" attribute of the shortcode. Easy!

    If you are using the default [pmpro_levels] shortcode, you have two options for hiding levels from the output:

    Option 1: Define hidden levels in a custom function.

    The code recipe below allows you to define specific level IDs that will not be shown on your membership levels page.

    This code recipe requires a PMPro Plus Account or higher.

    View Membership Options

    Option 2: Add a setting to “hide” levels from display on the Memberships > Edit Level admin.

    This code recipe adds a new level setting to hide the display. If you expect to be manipulating level display fairly often and would prefer to do so via settings in the dashboard vs. code, this is the recipe for you. After installing the customization code, just navigate to Memberships > Edit Level and set “Show level” to “Yes” or “No”.

    This code recipe requires a PMPro Plus Account or higher.

    View Membership Options

  4. Skipping the Membership Levels Page

    If you have only one public level of membership, this method will redirect members from the membership levels page directly to membership checkout for the defined PMPRO_DEFAULT_LEVEL.

    View the Tutorial

    Skipping the Membership Checkout Process

    As with the “skipping” option above, this method will allow you to use the default WordPress registration process (or another plugin or theme’s registration process) and apply a default level of membership.

    View the Tutorial

Comments (10)

How would we show only one level for spefic package so say you have level 1,2,3 .. I need one page to only show 1 membership package the shortcode im using is [pmpro_levels] this shows all three I need it to show 1 per page.

Hello, it sounds like you don’t want the Membership Levels page to show all the available levels but have different pages for different levels. To hide levels using the [pmpro_advanced_levels] shortcode, you can exclude them from thelevels=”1,2,3″ attribute of the shortcode. The Advanced Levels Shortcode is a Plus Add On and includes Support in the Member Support Area.

Hi there, I’d like to use the alternative short code however we need to display clearly our price + VAT in the description but this deoesnt pull through to the page. Are there plans to resolve this?


Hi Kimberly,
The font showing the levels on Membership Level page is white and background is white, how can I fix this so you can see the levels?

I have a problem with the membership display page when a certain level of subscription is been activated for a particular page, the membership level page displays all the list of available subscriptions which I don’t like, I only want the membership page to display only the activated subscription that is on each individual page.

The messages that display on a protected page can be customized on the Memberships > Settings > Advanced page. If a page has more than one level assigned to it, the !!levels!! text replacement will show a comma-separated list of all levels restricted on the page. You can customize this message in the text input on the settings page or via custom code: https://www.paidmembershipspro.com/customizing-the-message-for-non-members-on-membership-protected-content/

My membership page shows a display box underneath the plans with the features includded in that plan such as “View members directory” that I did not create. I would like to turn that off, or be able to edit the text, but I can not find anywhere on your site, instructions, or video, a way to do that…

Normaly I would not care about that, but there is a bug or a hack that happens when I set the language to portuguese. It replaces in the first line the “View members directory” to: You’ve created an account with IBLOG (in portuguese) that I can’t get rid off!
Could you help me with this?
Thanks for your attention,


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 *