У меня есть функция для изменения итоговой суммы после оформления клика пользователем;
add_action( 'woocommerce_checkout_create_order', 'change_total_on_checking', 20, 1 );
function change_total_on_checking( $order ) {
// Get order total
$total = $order->get_total();
## -- Make your checking and calculations -- ##
$new_total = $total * 1.12; // <== Fake calculation
// Set the new calculated total
$order->set_total( $new_total );
}
Эта функция работает отлично, но мне нужно установить только новый итог , если роль пользователя = wholesale_customer
Я изменил эту функцию следующим образом
add_action( 'woocommerce_checkout_create_order', 'change_total_on_checking', 20, 1 );
function change_total_on_checking( $order ) {
$order = new WC_Order($order_id);
$total = $order->get_total();
$user_meta = get_userdata($order->customer_user);
$user_roles = $user_meta->roles;
if ( in_array( 'wholesale_customer', $user_roles, true ) ) {
$new_total = 1000; // <== Fake calculation
$order->set_total( $new_total );
}
}
но не сработало. Мне нужно, чтобы эта функция действовала только для wholesale_customer. Как я могу это сделать? Спасибо за все ответы.