Skip to content

Instantly share code, notes, and snippets.

@ideadude
Created October 12, 2020 21:20
Show Gist options
  • Save ideadude/3c5b061f31c3da100cfdf133c9f09b23 to your computer and use it in GitHub Desktop.
Save ideadude/3c5b061f31c3da100cfdf133c9f09b23 to your computer and use it in GitHub Desktop.
Hide individual BuddyPress member pages from members of some levels when using Paid Memberships Pro.
/**
* Hide individual member pages from some levels.
* Make sure to adjust the pmpro_hasMembershipLevel check below
* to use the IDs of your levels which SHOULD have access to view members.
* Everyone else will be redirected to the restricted access or levels page.
*
* Copy this code into a custom plugin or Code Snippet.
*/
function my_redirect_away_from_member_pages() {
// Bail if PMPro and BuddyPress aren't active.
if ( ! function_exists( 'pmpro_hasMembershipLevel' ) || ! function_exists( 'bp_get_displayed_user' ) ) {
return;
}
// Bail if we aren't on a member page.
if ( empty( bp_get_displayed_user() ) ) {
return;
}
// Bail if the user has a good membership level.
// IMPORTANT: Update the levels checked here.
if ( pmpro_hasMembershipLevel( array( 1, 4, 5 ) ) ) {
return;
}
// Redirect everyone else to the restricted page.
if ( function_exists( 'pmpro_bp_redirect_to_access_required_page' ) ) {
pmpro_bp_redirect_to_access_required_page();
exit;
} else {
global $pmpro_pages;
wp_redirect( get_permalink( $pmpro_pages['levels'] ) );
exit;
}
}
add_action( 'template_redirect', 'my_redirect_away_from_member_pages' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment