webentwicklung-frage-antwort-db.com.de

In einer Redirect-Schleife stecken

Ich versuche, einen Code zu erstellen, in dem Nichtmitglieder auf die Zielseite umgeleitet werden. Leider funktioniert der von mir erstellte Code teilweise und führt zu einer Umleitungsschleife.

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;
}

Jede Hilfe wäre dankbar. Der erste Teil der if-Anweisung funktioniert einwandfrei, aber die zweite Hälfte gibt eine Umleitungsschleife zurück.

Danke und Grüße,

Piyush

1
diablojunk

Sie müssen auch überprüfen, ob sich der Benutzer auf dieser bestimmten Seite befindet oder nicht. Wenn er sich auf dieser Seite befindet, müssen Sie ihn nicht erneut umleiten.

Ändern Sie Ihr sonst dazu:

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;
    }
}

In welchem ​​page-slug befindet sich der Slug der Seite, zu der Sie Ihre Benutzer umleiten?.

1
Jack Johansson