Описание woocommerce_order_status_$STATUS_TRANSITION[to]
— Action
Хук woocommerce_order_status_$STATUS_TRANSITION[to] срабатывает при изменении статуса заказа в WooCommerce. Он позволяет выполнять дополнительные действия в зависимости от нового статуса заказа, что может быть полезно для уведомлений, обработки заказов и интеграций с другими системами
Примеры использования
Пример отправки уведомления при изменении статуса заказа на ‘completed’:
add_action('woocommerce_order_status_completed', function($order_id, $old_status, $new_status) {
$order = wc_get_order($order_id);
// Отправляем уведомление клиенту о завершении заказа
wp_mail($order->get_billing_email(), 'Ваш заказ завершен', 'Спасибо за покупку!');
}, 10, 3);
Этот код отправляет электронное письмо клиенту, когда статус заказа изменяется на ‘завершен’
Пример обновления статуса товара на ‘в наличии’ при изменении статуса заказа на ‘processing’:
add_action('woocommerce_order_status_processing', function($order_id, $old_status, $new_status) {
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item) {
$product = $item->get_product();
// Увеличиваем количество товара
$stock = $product->get_stock_quantity();
$product->set_stock_quantity($stock + 1);
$product->save();
}
}, 10, 3);
Этот код обновляет количество товара при изменении статуса заказа на ‘в обработке’
Пример логирования изменений статуса заказа:
add_action('woocommerce_order_status_changed', function($order_id, $old_status, $new_status) {
error_log('Заказ ' . $order_id . ' изменил статус с ' . $old_status . ' на ' . $new_status);
}, 10, 3);
Этот код записывает изменения статуса заказа в лог для дальнейшего анализа
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо выполнить действия при изменении статуса заказа, такие как уведомления или обработка данных
– Производительность
Избегайте тяжелых операций внутри хуков, чтобы не замедлять процесс изменения статуса
– Предупреждения
Убедитесь, что логика, выполняемая в хуке, корректно обрабатывает все возможные статусы и сценарии
Альтернативы
Тип: action
Этот хук срабатывает при изменении статуса заказа и может использоваться для выполнения действий в зависимости от старого и нового статуса
Используйте его, когда хотите получить доступ как к старому, так и к новому статусу заказа