Last active
April 8, 2021 18:20
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 ); |
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
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