I was recently asked how a site could customize their membership levels page to show different levels to the visitor and the logged-in member (for “upgrade” levels). This is useful if you have a specific upgrade path, be it for courses, a unique step-by-step program or other “tiered” access that you want to control the flow for.

This can be easily accomplished using the built-in [membership] shortcode alongside our Advanced Levels Page Shortcode Add On.


How to Do it: Demo

[membership level="0"]
<!--this is shown to non-members and non-logged in visitors-->
[pmpro_advanced_levels levels="1,2,3" layout="3col"]
[/membership]
[membership level="1,2"]
[pmpro_advanced_levels levels="2,3" layout="2col"]
<!--this is shown to Level 1 and 2 Members-->
[/membership]
[membership level="3"]
[pmpro_advanced_levels levels="4"]
<!--this is shown to Level 3 Members-->
[/membership]

Read documentation on the [membership] shortcode and our Advanced Levels Page Shortcode Add On for instructions on how to modify this demo code for your project.

It may also be smart to add a link to your login page above or below the levels shortcode, something along the lines of:

[membership level="0"]
<!--this is shown to non-members and non-logged in visitors-->
<div class="pmpro_message pmpro_alert">
	Already a member? Log In to unlock additional membership options.
</div>
[/membership]

Important Notes

  • Setting up the site in this method will not put the checks in place to require a level in order to check out for another level (i.e. if you have to purchase Level 1 in order to upgrade to Level 2). Checkout the code recipe below for a tutorial to put that registration check in place.

    https://www.paidmembershipspro.com/require-a-specific-level-to-allow-registration-for-another-level/

  • Don’t check the box to “Disable Signups” for the levels on the Memberships > Levels > Edit Level page. This totally blocks the level for public registrations (as well as display on a page using the [pmpro_levels] or [pmpro_advanced_levels] shortcodes).

Leave a Reply