Описание woocommerce_order_status_changed
— Action
Хук woocommerce_order_status_changed позволяет выполнять действия при изменении статуса заказа в WooCommerce. Он срабатывает каждый раз, когда статус заказа изменяется, что позволяет разработчикам выполнять дополнительные действия, такие как отправка уведомлений или обновление данных
Примеры использования
Пример отправки уведомления при изменении статуса заказа на ‘completed’:
add_action('woocommerce_order_status_changed', function($order_id, $old_status, $new_status) {
if ($new_status === 'completed') {
// Отправляем уведомление о завершении заказа
$order = wc_get_order($order_id);
$to = $order->get_billing_email();
$subject = 'Ваш заказ завершен';
$message = 'Спасибо за покупку! Ваш заказ #' . $order_id . ' завершен.';
wp_mail($to, $subject, $message);
}
}, 10, 3);
Здесь мы отправляем уведомление по электронной почте, когда заказ завершен
Пример обновления пользовательских метаданных при изменении статуса заказа:
add_action('woocommerce_order_status_changed', function($order_id, $old_status, $new_status) {
if ($new_status === 'processing') {
// Обновляем метаданные заказа
update_post_meta($order_id, '_custom_meta_key', 'some_value');
}
}, 10, 3);
В этом примере мы обновляем метаданные заказа, когда статус становится ‘processing’
Пример логирования изменений статуса заказа:
add_action('woocommerce_order_status_changed', function($order_id, $old_status, $new_status) {
// Логируем изменения
error_log('Статус заказа #' . $order_id . ' изменен с ' . $old_status . ' на ' . $new_status);
}, 10, 3);
Используем error_log для записи изменений статуса в файл журнала сервера
— Лучшие практики
– Использование
Используйте этот хук для выполнения действий, связанных с изменением статуса заказа, например, для отправки уведомлений или обновления данных
– Производительность
Следите за тем, чтобы ваши действия не вызывали долгих операций, так как это может замедлить процесс изменения статуса
– Предупреждения
Убедитесь, что ваши изменения не конфликтуют с другими плагинами или функциональностью WooCommerce
Альтернативы
Тип: action
Этот хук срабатывает только при изменении статуса заказа на ‘processing’
Используйте его, если вам нужно выполнять действия только при конкретном изменении статуса
Тип: action
Этот хук срабатывает только при изменении статуса заказа на ‘completed’
Используйте его для выполнения действий, специфичных для завершенных заказов