Описание woocommerce_order_has_status
— Action
Хук woocommerce_order_has_status позволяет выполнять действия, когда статус заказа изменяется в WooCommerce. Он срабатывает после изменения статуса заказа, что позволяет добавлять дополнительную логику или выполнять действия в зависимости от нового статуса заказа
Примеры использования
Пример отправки уведомления при изменении статуса заказа на ‘completed’:
add_action('woocommerce_order_has_status', function($order, $old_status, $new_status) {
if ($new_status === 'completed') {
// Отправка уведомления клиенту
$order->send_order_confirmation();
}
}, 10, 3);
Этот код отправляет уведомление клиенту, когда статус заказа изменяется на ‘completed’
Пример изменения количества товара на складе при возврате товара:
add_action('woocommerce_order_has_status', function($order, $old_status, $new_status) {
if ($old_status === 'completed' && $new_status === 'refunded') {
foreach ($order->get_items() as $item_id => $item) {
$product_id = $item->get_product_id();
$qty = $item->get_quantity();
// Увеличиваем количество товара на складе
wc_update_product_stock($product_id, $qty);
}
}
}, 10, 3);
Этот код увеличивает количество товара на складе, если заказ был возвращен
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавить логику, связанную с изменением статуса заказа, например, отправку уведомлений или изменение данных о товаре
– Производительность
Следите за тем, чтобы действия, выполняемые в хуке, были оптимизированы, так как они могут вызываться часто
– Предупреждения
Будьте внимательны с изменением статуса заказа, чтобы избежать бесконечных циклов изменений
Альтернативы
Тип: action
Этот хук срабатывает при изменении статуса заказа и предоставляет аналогичные параметры
Используйте его, если вам нужно выполнять действия только при изменении статуса, без необходимости знать старый статус