Я пытаюсь отправлять себе электронное письмо после каждого размещенного заказа. У меня проблема в том, что $order->get_total()
, а также get_total_tax
возвращают 0 вместо фактической общей стоимости заказа.
add_action( 'woocommerce_new_order', 'custom_after_order_created_hook', 12 , 1);
function custom_after_order_created_hook($order_id) {
$order = new WC_Order($order_id);
$with_tax = $order->get_total();
$tax = $order->get_total_tax();
$without_tax = $with_tax - $tax;
$to = "[email protected]";
$subject = "New order";
$content = "
New order {$order->id}
With tax: {$with_tax}
Without tax: {$without_tax}
Tax: {$tax}
";
$status = wp_mail($to, $subject, $content);
}
Каждое значение, кроме $ order_id и $order->id
, оценивается как 0. $ order_id имеет правильное значение. Эта проблема возникает только при использовании хука woocommerce_new_order
(я также пробовал использовать его на настраиваемой странице - работает правильно), что заставляет меня задуматься.
Я не уверен, в чем проблема, какая-то часть моего кода асинхронна?
Или, может быть, этот хук вызывается перед обновлением заказа с указанием уплаченной цены / налоговой информации?
Что мне делать, чтобы получить здесь информацию о ценах?
Спасибо.