Stuck In a Redirect Loop

时间:2017-10-24 作者:diablojunk

我正在尝试构建一个代码,让非成员重定向到登录页。不幸的是,我构建的代码部分工作,并导致重定向循环。

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;
}
任何帮助都将不胜感激。if语句的第一部分工作正常,但第二部分返回重定向循环。

感谢和问候,

皮尤什

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

您还需要检查用户是否在该特定页面上。如果他在该页面上,则无需再次重定向他/她。

将else更改为:

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;
    }
}
其中page-slug 是您将用户重定向到的页面的slug。

结束