Описание woocommerce_cancel_unpaid_order
— Action
Хук woocommerce_cancel_unpaid_order позволяет выполнять действия после отмены неоплаченного заказа. Он срабатывает, когда заказ, который еще не был оплачен, отменяется системой, что обычно происходит после истечения установленного времени ожидания оплаты
Примеры использования
Пример отправки уведомления администратору при отмене неоплаченного заказа:
add_action('woocommerce_cancel_unpaid_order', function($order) {
$to = 'admin@example.com';
$subject = 'Заказ отменен';
$message = 'Заказ с ID ' . $order->get_id() . ' был отменен из-за неоплаты.';
wp_mail($to, $subject, $message);
});
В этом примере мы отправляем уведомление администратору о том, что заказ был отменен
Пример добавления пользовательской заметки к заказу при его отмене:
add_action('woocommerce_cancel_unpaid_order', function($order) {
$order->add_order_note('Этот заказ был автоматически отменен из-за неоплаты.');
});
Здесь мы добавляем заметку к заказу, чтобы отслеживать его статус
Пример удаления товаров из корзины при отмене заказа:
add_action('woocommerce_cancel_unpaid_order', function($order) {
foreach ($order->get_items() as $item_id => $item) {
$product_id = $item->get_product_id();
WC()->cart->remove_cart_item($product_id);
}
});
В этом примере мы удаляем товары из корзины, если заказ был отменен
— Лучшие практики
– Использование
Используйте этот хук для обработки логики, связанной с отменой неоплаченных заказов, например, для отправки уведомлений или записи информации
– Производительность
Так как хук выполняется при отмене заказа, его использование не должно существенно влиять на производительность, если обработка не требует чрезмерных вычислений
– Предупреждения
Следует быть осторожным при использовании хуков, чтобы не вызывать нежелательные действия, например, повторные уведомления или изменения статусов, если они не нужны
Альтернативы
Тип: action
Этот хук срабатывает при смене статуса заказа на ‘отменен’. Можно использовать для более общего контроля за всеми отменами
Используйте его, если нужно обрабатывать заказы, которые были отменены по любой причине, а не только неоплаченные
Тип: action
Этот хук срабатывает, когда заказ переводится в статус ‘ожидания’. Можно использовать для управления логикой ожидания оплаты
Используйте его для выполнения действий, когда заказ ожидает оплату, и необходимо отслеживать время ожидания