Мне нужны роли пользователей при заказе, чтобы это изменило цены на налоги. Но когда я заказываю с помощью PayPal, электронные письма начинают тесниться.
Я проверил, могу ли я получить роль пользователя с помощью объекта orders или в объекте get current user:
$user_id = $order->user_id;
$user = get_user_by("id", $user_id);
$userWrong = wp_get_current_user();
echo "USER ROLE:" . $user->roles[0];
echo "USER ROLE:" . $userWrong->roles[0];
Но в электронных письмах кажется, что текущий вошедший в систему пользователь пуст:
Но я не могу получить роль пользователя в этих фильтрах и хуках. Что я могу использовать, чтобы получить их?
add_filter("pre_option_woocommerce_tax_display_shop", "alter_tax_display");
add_filter("pre_option_woocommerce_tax_display_cart", "alter_tax_display");
function alter_tax_display( $tax_display ) {
$user = wp_get_current_user();
// CHANGE PRICE FOR WHOLESALER
if ( $user->roles[0] == "wholesaler") {
return "excl";
}
return "incl";
}
function wc_diff_rate_for_user( $tax_class, $product ) {
$user = wp_get_current_user();
if ($user->roles[0] == "wholesaler") {
$tax_class = "Zero Rate";
}
return $tax_class;
}
add_filter( "woocommerce_product_tax_class", "wc_diff_rate_for_user", 1, 2 );