我有一个功能,可以检查一些用户元,然后根据它重定向。在我更新网站上的所有内容之前,我很确定这是可行的。
出于某种原因,现在当有人登录时,它总是重定向到/updated-terms-and-conditions/. 我已经检查了发生这种情况后的用户元及其设置是否正确,因此我希望它重定向到/.
有什么想法吗?
function redirect_login_to_tos($redirect) {
$user_id = get_current_user_id();
$checkout_tos2 = get_user_meta($user_id, \'checkout_tos2\', true);
$checkout_tos3 = get_user_meta($user_id, \'checkout_tos3\', true);
if($checkout_tos2 != \'agreed\' || $checkout_tos3 != \'agreed\'){
$redirect = \'/updated-terms-and-conditions/\';
}else{
$redirect = \'/\';
}
return $redirect;
}
add_filter(\'woocommerce_login_redirect\', \'redirect_login_to_tos\');
最合适的回答,由SO网友:RiddleMeThis 整理而成
woocommerce_login_redirect 类似于login_redirect 它有一个用户参数。这意味着你不必使用get_current_user_id() (测试时返回0)。
相反,请更换get_current_user_id() 具有$user->ID;.
例如:
function redirect_login_to_tos($redirect, $user) {
$user_id = $user->ID;
$checkout_tos2 = get_user_meta($user_id, \'checkout_tos2\', true);
$checkout_tos3 = get_user_meta($user_id, \'checkout_tos3\', true);
if($checkout_tos2 != \'agreed\' || $checkout_tos3 != \'agreed\'){
$redirect = \'/updated-terms-and-conditions/\';
}else{
$redirect = \'/\';
}
return $redirect;
}
add_filter(\'woocommerce_login_redirect\', \'redirect_login_to_tos\', 10, 2);