Изменить цены заказа в Woocommerce 3 - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно изменить цену товара в заказе на woocommerce, но все, что я нашел, это изменить цену в корзине, но это не то, что мне нужно, потому что мне нужно изменить после оформления заказа.

Может кто-нибудь подсказать, как это сделать?

1 Ответ

0 голосов
/ 05 мая 2018

Вам необходимо использовать новые методы установки CRUD , представленные в Woocommerce 3:

Вот рабочий базовый пример со статической ценой и статическим идентификатором заказа:

$order_id = 809; // Static order Id (can be removed to get a dynamic order ID from $order_id variable)

$order = wc_get_order( $order_id ); // The WC_Order object instance

// Loop through Order items ("line_item" type)
foreach( $order->get_items() as $item_id => $item ){
    $new_product_price = 50; // A static replacement product price
    $product_quantity = (int) $item->get_quantity(); // product Quantity

    // The new line item price
    $new_line_item_price = $new_product_price * $product_quantity;

    // Set the new price
    $item->set_subtotal( $new_line_item_price ); 
    $item->set_total( $new_line_item_price );

    // Make new taxes calculations
    $item->calculate_taxes();

    $item->save(); // Save line item data
}
// Make the calculations  for the order
$order->calculate_totals();

$order->save(); // Save and sync the data

Тогда вам придется заменить статическую цену на вашу новую цену на пользовательской странице, что не так просто, так как вам нужно настроить таргетинг на $item_id

...