пытается найти способ обновить цены товаров в заказах woocommerce, если цена продажи товара изменилась, с помощью WC_Order.он отлично работает на отдельных продуктах, но при использовании переменного продукта в woocommerce он получает только первый вариант этого соответствующего продукта.Не могу понять почему?
// Cron job
add_action( 'isa_add_every_three_minutes', 'every_three_minutes_event_func' );
function every_three_minutes_event_func( $checkout = null)
{
global $woocommerce;
global $product;
$query = new WC_Order_Query( array(
'status' => 'on-hold',
'orderby' => 'date',
'order' => 'DESC',
'return' => 'ids',
) );
$order_ids = $query->get_orders();
foreach( $order_ids as $order_id ) {
// Getting all products
$order = new WC_Order($order_id);
// Going through all orders
foreach ($order->get_items() as $item_id => $item_obj) {
$_product = wc_get_product($item_obj['product_id']);
$t_dy = $_product->get_price();
$item_qty = $item_obj['qty'];
$it_total = $item_qty * $t_dy;
$td = wc_update_order_item_meta($item_id, '_line_total', $it_total);
$order->calculate_totals();
$order->save();
}
}
}