Hi Ahmed,
I will suggest hooking to ‘bp_template_redirect’ hook and checking for the logged in members member type using bp_has_member_type( bp_loggedin_user_id(), ‘member_type_name’ ) to redirect the users.If you need complete code example, please do let me know.
Thank you
Brajeshhi Brajesh,
i try 2 ways1st way:
function yoostart_restriction(){
if ( bp_has_member_type( bp_loggedin_user_id(), ‘particulier’) && is_page(‘devenir-vendeur’) ) {
wp_redirect( home_url(‘/test’) );
}
}
add_action(‘bp_template_redirect’, ‘yoostart_restriction’);This function works but doesn’t take users without member type.
2nd way:
function yoostart_restriction(){
$member_type = bp_get_member_type( $current_user->ID );
if (is_user_logged_in() && ‘microentreprise’ === $member_type && is_page(‘devenir-vendeur’) ) {
wp_redirect( home_url( ‘/test’) );
}
}
add_action(‘bp_template_redirect’, ‘yoostart_restriction’);I wanted to use variable but it doesn’t work
thank you
AhmedHi Ahmed,
your first way is the right way.Here is a modified version of it.
function buddydev_example_redirect() { if ( ! is_user_logged_in() ) { //do something with non logged in member } $member_type = bp_get_member_type( bp_loggedin_user_id() ); if ( empty( $member_type ) ) { // current user has no member type, do something } if( 'student' === $member_type ) { // is student } elseif( 'teacher' === $member_type ) { } elseif( 'staff' === $member_type ) { } else { //in all other cases, do something. } } add_action( 'bp_template_redirect', 'buddydev_example_redirect' );
I hope you can take over from there.
Regards
Brajeshthank you for help Brajesh,
Here is the function
function yoostart_restriction() { if ( ! is_user_logged_in() && is_page('devenir-vendeur') ) { wp_redirect( home_url( '/test') ); } $member_type = bp_get_member_type( bp_loggedin_user_id() ); if ( empty( $member_type ) && is_page('devenir-vendeur') ) { wp_redirect( home_url( '/test') ); } if( 'particulier' === $member_type && is_page('devenir-vendeur') ) { wp_redirect( home_url( '/test') ); } } add_action( 'bp_template_redirect', 'yoostart_restriction' );
and it works well,can be improved?
Ahmed
Is ‘particulier’ the only member type you want to redirect for? If yes, We can merge the last two conditions. Please let me know and I will post an update. Also, a better optimisation will be to check if ! is_page(‘page-name’) and return.
Regards
BrajeshHi Ahmed,
Please try this then.function yoostart_restriction() { if ( ! is_page('devenir-vendeur') ) { return ; } // we are sure we are on that page. // Is user logged in? if ( ! is_user_logged_in() ) { bp_core_redirect( home_url( '/test') ); } $member_type = bp_get_member_type( bp_loggedin_user_id() ); if ( empty( $member_type ) || 'particulier' === $member_type ) { bp_core_redirect( home_url( '/test') ); } } add_action( 'bp_template_redirect', 'yoostart_restriction' );
Let me know if it works as expected or not?
The topic ‘ [Resolved] Redirect user if not member type’ is closed to new replies.