web-dev-qa-db-fra.com

Coincé dans une boucle de redirection

J'essaie de créer un code dans lequel les non-membres sont redirigés vers la page de destination. Malheureusement, le code que j'ai construit fonctionne en partie et génère une boucle de redirection.

if(is_user_logged_in() && function_exists('pmpro_hasMembershipLevel') && pmpro_hasMembershipLevel()) {
    global $current_user;
    $current_user->membership_level = pmpro_getMembershipLevelForUser($current_user->ID);
    echo 'Membership Level: ' . $current_user->membership_level->name;
} else {
    wp_redirect(/my-account/orders/);
    exit;
}

Toute aide serait appréciée. La première partie de l'instruction if fonctionne bien, mais la seconde moitié renvoie la boucle de redirection.

Merci et salutations,

Piyush

1
diablojunk

Vous devez également vérifier si l'utilisateur est sur cette page particulière ou non. S'il se trouve sur cette page, il n'est pas nécessaire de le rediriger à nouveau.

Changer votre autre à ceci:

if(is_user_logged_in() && function_exists('pmpro_hasMembershipLevel') && pmpro_hasMembershipLevel()) {
    global $current_user;
    $current_user->membership_level = pmpro_getMembershipLevelForUser($current_user->ID);
    echo 'Membership Level: ' . $current_user->membership_level->name;
} else {
    if( ! is_page('page-slug') ){
        wp_redirect('/my-account/orders/');
        exit;
    }
}

Dans lequel page-slug est le slug de la page vers laquelle vous redirigez vos utilisateurs.

1
Jack Johansson