Я пытаюсь обновить количество заказанного товара, и при этом я хотел бы, чтобы заказ отражал фактическую стоимость. Я обнаружил, что стоимость продукта уменьшается в соответствии с общей стоимостью, а общая сумма заказа никогда не обновляется. Ниже приведен простой пример:
function prefix_update_woo_order() {
$order_id = 123; // This needs to be a real order or there will be errors
$order_item_id = 5; // This needs to be a real order item ID or there will be errors.
$order = new WC_Order( $order_id );
$order_items = $order->get_items();
$order_items[ $order_item_id ]->set_quantity( 2 );
$order->calculate_taxes();
$order->calculate_totals();
$order->save();
}
add_action( 'admin_init', 'prefix_update_woo_order' );
Например, продукт «Шапочка с логотипом» продается по цене 18 долларов, а я покупаю 1. Я хочу программно обновить позицию заказа до количества2 вместо 1 после размещения заказа. Я ожидаю, что общая сумма составит 36,00 долларов, но я обнаружил, что стоимость продукта меняется в соответствии с общей ценой. Вместо стоимости 18 долларов США за «шапочку с логотипом» количество обновляется до 2, а стоимость снижается до 9 долларов США.
Короче говоря, я хочу обновить существующее количество элементов заказа иобновите итоги, чтобы отразить новое количество, скидку, налоги. Какие методы мне нужно использовать для достижения этой цели?