Описание woocommerce_checkout_create_order_line_item_object
— Action
Хук woocommerce_checkout_create_order_line_item_object позволяет изменять объекты строк заказа перед их сохранением. Он срабатывает на этапе оформления заказа, когда создается каждая строка заказа, что позволяет добавлять или изменять данные, связанные с товаром в заказе
Примеры использования
Пример добавления метаданных к строке заказа:
add_action('woocommerce_checkout_create_order_line_item_object', function($item, $cart_item_key, $values) {
$item->add_meta_data('custom_meta_key', 'Custom Meta Value');
});
В этом примере мы добавляем пользовательские метаданные к строке заказа
Пример изменения цены товара в строке заказа:
add_action('woocommerce_checkout_create_order_line_item_object', function($item, $cart_item_key, $values) {
if ($item->get_product_id() === 123) {
$item->set_subtotal(50);
$item->set_total(50);
}
});
Здесь мы изменяем цену товара с ID 123 на 50
Пример добавления пользовательского поля из корзины в строку заказа:
add_action('woocommerce_checkout_create_order_line_item_object', function($item, $cart_item_key, $values) {
if (isset($values['custom_field'])) {
$item->add_meta_data('Custom Field', $values['custom_field']);
}
});
Этот код добавляет значение пользовательского поля из корзины в метаданные строки заказа
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо модифицировать данные товара в строке заказа во время оформления
– Производительность
Хук не должен значимо влиять на производительность, но следует избегать сложных операций внутри него
– Предупреждения
Будьте внимательны с изменением цен, чтобы избежать несоответствий в расчетах
Альтернативы
Тип: action
Этот хук также позволяет модифицировать строки заказа, но срабатывает позже в процессе создания заказа
Используйте его, если вам нужно выполнить изменения после создания строки заказа, например, для добавления дополнительных данных