Добавляет метаданные для позиций заказа, возвращает либо ID строки метаданных в базе данных, либо false
, если метаданные добавлены не были.
Читайте отдельный урок про позиции заказа.
wc_add_order_item_meta( $item_id, $meta_key, $meta_value, $unique = false )
false
– метаданные будут добавляться, true
– не будут, каждый ключ будет уникальным.У метаданных позиций заказа уже имеется какой-то набор предопределённых ключей, имеющих определённое назначение. Что это за ключи – зависит от типа позиции товара.
Например для типа line_item
(товары и вариации) набор ключей будет следующим:
Ключ | Описание |
---|---|
_product_id | ID товара, с которым ассоциирована позиция заказа |
_variation_id | ID вариации товара, с которой ассоциирована позиция заказа |
_line_subtotal | Цена одной позиции товара |
_qty | Количество позиций товара |
_line_total | Общая стоимость |
Ключи для типа shipping
:
Ключ | Описание |
---|---|
cost | Стоимость доставки |
method_id | Тип метода доставки, например «flat_rate» |
instance_id | ID метода доставки |
Ключи для типа fee
:
Ключ | Описание |
---|---|
_fee_amount | Сумма сбора |
В качестве примера можем добавить позицию заказа типа line_item
, которая будет прилинкована к определённой вариации.
// допустим мы будем добавлять позиции в заказ с ID=5 $order_id = 5; $order_item_id = wc_add_order_item( $order_id, array( 'order_item_name' => 'Футболка', 'order_item_type' => 'line_item' ) ); wc_add_order_item_meta( $order_item_id, '_product_id', 13, true ); wc_add_order_item_meta( $order_item_id, '_variation_id', 53, true ); wc_add_order_item_meta( $order_item_id, '_line_subtotal', 10, true ); // цена wc_add_order_item_meta( $order_item_id, '_qty', 2, true ); // количество wc_add_order_item_meta( $order_item_id, '_line_total', 20, true ); // стоимость $order = new WC_Order( $order_id ); $order->calculate_totals(); // пересчитываем стоимость заказа
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.