Skip to content

Instantly share code, notes, and snippets.

@kimcoleman
Last active April 8, 2021 18:20
Show Gist options
  • Save kimcoleman/d0c26f0c03ea75e65e499c15c7eacb00 to your computer and use it in GitHub Desktop.
Save kimcoleman/d0c26f0c03ea75e65e499c15c7eacb00 to your computer and use it in GitHub Desktop.
Dynamically display certain levels on the Membership Levels page based on the current user's active level
<?php
/**
* Dynamically display certain levels on the Membership Levels page based on the current user's active level
* This example allows you to show/hide specific levels on the Membership Levels page.
*/
function dynamic_pmpro_levels_array( $levels ) {
// Get all the levels
$levels = pmpro_getAllLevels( false, true );
// remove levels 1, 5, 6, and 7 user has level 1.
if ( pmpro_hasMembershipLevel( '1' ) ) {
unset( $levels['1'] );
unset( $levels['5'] );
unset( $levels['6'] );
unset( $levels['7'] );
}
// remove levels 1, 2, 3, and 4 if user has level 2.
if ( pmpro_hasMembershipLevel( '2' ) ) {
unset( $levels['1'] );
unset( $levels['2'] );
unset( $levels['3'] );
unset( $levels['4'] );
}
// only show levels 1 and 2 if user has no level.
if ( ! pmpro_hasMembershipLevel( ) ) {
unset( $levels['3'] );
unset( $levels['4'] );
unset( $levels['5'] );
unset( $levels['6'] );
unset( $levels['7'] );
}
return $levels;
}
add_filter( 'pmpro_levels_array', 'dynamic_pmpro_levels_array', 10, 2 );
@mmdesignsldn
Copy link

How would you use this for pmpro_levels shortcode as I tried to modify a little it did not work so if we use the pmpro_levels shortcode it shows all three membership I need specific membership for each page so page 1 showing 1 membership, page 2 another membership

@laurenhagan0306
Copy link

This recipe is included in the blog post on "How to Design Your Membership Levels Page: Custom Order, Dynamic List, Hide the Display, or Skip it Mega Post" at Paid Memberships Pro here: https://www.paidmembershipspro.com/memberships-levels-page-order-hide-display-skip-mega-post/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment