这是更新后的代码,您必须传递用户对象的ID才能获得\u user\u元数据函数。您正在将WP\u用户对象传递给函数。我认为您不能使用函数get\u current\u user\u id(),因为全局wp\u user对象尚未设置。我检查了它,它总是返回0作为值。这可以解释为什么他们在过滤器中提供$user变量。
function kundtyp($Uuser) {
$key = 'acCustomerName';
$single = true;
return get_user_meta( $Uuser->ID, $key, $single );
}
function forward_user( $redirect, $user ) {
$kundtyp = kundtyp($user);
$redirect_page_id = url_to_postid( $redirect );
$checkout_page_id = wc_get_page_id( 'checkout' );
if( $redirect_page_id == $checkout_page_id ) {
return $redirect;
}
return site_url( kundtyp( $user ) );
}
add_filter( 'woocommerce_login_redirect', 'forward_user', 1100, 2 );