wc_update_order_item() – изменяет информацию о позиции заказа

Функция позволяет изменить основную информацию о позиции заказа WooCommerce – название позиции, её тип и то, к какому заказу она прикреплена.

Возвращает true, если получилось обновить информацию, если не получилось – false.

wc_update_order_item( $item_id, $args )

Параметры функции wc_update_order_item()

$item_id
(целое число) ID позиции заказа, его кстати можно получить из самого заказа при помощи метода get_items(), подробнее тут.
$args
(массив) Массив параметров, которые вы хотите изменить.
order_id
(целое число) ID заказа, к которому прикреплена данная позиция.
order_item_name
(строка) Название позиции заказа. То есть, даже если вы планируете добавить какой-то определённый товар, то его название не обязательно должно совпадать с оригинальным названием товара.
order_item_type
(строка) Тип позиции заказа. По умолчанию line_item, что может являться товаром или вариацией товара, но также может принимать значения shipping (доставка) или fee (сбор).

Пример

В качестве примера можем получить все позиции заказа с ID=5 и переприкрепить все эти позиции к заказу с ID=55.

$order = wc_get_order( 5 );
$order_items = $order->get_items( array( 'line_item', 'fee', 'shipping' ) );
 
if ( ! is_wp_error( $order_items ) ) {
 
	foreach( $order_items as $item_id => $order_item ) {
		wc_update_order_item( $item_id, array( 'order_id' => 55 ) );
	}
 
}
 
// также возможно вы захотите пересчитать заказ с ID=55 методом calculate_totals()

Хук woocommerce_update_order_item

В случае, если информация о позиции заказа была успешно обновлена, то срабатывает хук woocommerce_update_order_item.

add_action( 'woocommerce_update_order_item', 'true_after_order_item_update', 25, 2 );
 
function true_after_order_item_update( $item_id, $args ) {
	// делаем что-либо
}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.