Woocommerce: при заказе через PayPal пользовательский объект становится пустым - PullRequest
0 голосов
/ 17 марта 2020

Мне нужны роли пользователей при заказе, чтобы это изменило цены на налоги. Но когда я заказываю с помощью 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];

Но в электронных письмах кажется, что текущий вошедший в систему пользователь пуст: enter image description here

Но я не могу получить роль пользователя в этих фильтрах и хуках. Что я могу использовать, чтобы получить их?

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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...