我正在尝试构建一个代码,让非成员重定向到登录页。不幸的是,我构建的代码部分工作,并导致重定向循环。
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语句的第一部分工作正常,但第二部分返回重定向循环。
感谢和问候,
皮尤什
最合适的回答,由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。