Описание woocommerce_checkout_order_processed
— Action
Хук woocommerce_checkout_order_processed срабатывает после завершения обработки заказа на странице оформления заказа WooCommerce. Он позволяет выполнять дополнительные действия, такие как отправка уведомлений, создание записей в сторонних системах или изменение данных заказа перед его сохранением
Примеры использования
Пример отправки уведомления на почту после оформления заказа:
add_action('woocommerce_checkout_order_processed', function($order_id, $posted_data) {
$order = wc_get_order($order_id);
$to = 'admin@example.com';
$subject = 'Новый заказ';
$message = 'Заказ #' . $order->get_id() . ' был успешно оформлен.';
wp_mail($to, $subject, $message);
});
Этот код отправляет уведомление администратору после оформления нового заказа
Пример изменения статуса заказа после его обработки:
add_action('woocommerce_checkout_order_processed', function($order_id, $posted_data) {
$order = wc_get_order($order_id);
$order->set_status('on-hold');
$order->save();
});
В этом примере статус заказа меняется на ‘ожидает’ после его обработки
Пример записи данных в стороннюю систему после оформления заказа:
add_action('woocommerce_checkout_order_processed', function($order_id, $posted_data) {
$order = wc_get_order($order_id);
$data = array('order_id' => $order->get_id(), 'total' => $order->get_total());
wp_remote_post('https://external-system.com/api/orders', array('body' => json_encode($data)));
});
Этот код отправляет данные заказа на внешний API после его обработки
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо выполнить действия сразу после оформления заказа, такие как уведомления или интеграции с сторонними сервисами
– Производительность
Следите за тем, чтобы действия не занимали много времени, так как это может замедлить процесс оформления заказа
– Предупреждения
Будьте осторожны с изменением статуса заказа или других критически важных данных, чтобы избежать путаницы
Альтернативы
Тип: action
Этот хук срабатывает на странице благодарности после оформления заказа и может быть использован для выполнения действий, связанных с завершением покупки
Используйте его, если хотите выполнить действия только после того, как пользователь увидит страницу благодарности
Тип: action
Срабатывает при изменении статуса заказа и может быть использован для выполнения действий в зависимости от нового статуса
Используйте, если необходимо выполнять действия при изменении статуса заказа, а не только при его первоначальной обработке