Описание woocommerce_payment_complete_order_status
— Filter
Хук woocommerce_payment_complete_order_status позволяет изменить статус заказа при завершении оплаты. Он срабатывает после успешной обработки платежа и может использоваться для изменения статуса заказа в зависимости от условий или логики бизнеса
Примеры использования
Пример изменения статуса заказа на ‘on-hold’ после завершения оплаты:
add_filter('woocommerce_payment_complete_order_status', function($status, $order_id) {
return 'on-hold';
}, 10, 2);
В этом примере статус заказа изменяется на ‘on-hold’ после завершения оплаты
Пример возврата статуса в зависимости от типа оплаты:
add_filter('woocommerce_payment_complete_order_status', function($status, $order_id) {
$order = wc_get_order($order_id);
if ($order->get_payment_method() === 'cod') {
return 'completed';
}
return $status;
}, 10, 2);
Здесь статус изменяется на ‘completed’, если способ оплаты — наложенный платеж (cod)
Пример добавления условия для изменения статуса в зависимости от суммы заказа:
add_filter('woocommerce_payment_complete_order_status', function($status, $order_id) {
$order = wc_get_order($order_id);
if ($order->get_total() > 100) {
return 'completed';
}
return 'on-hold';
}, 10, 2);
В этом примере, если сумма заказа больше 100, статус устанавливается на ‘completed’, иначе — на ‘on-hold’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить статус заказа в зависимости от определенных условий после завершения оплаты
– Производительность
Хук не должен вызывать значительных проблем с производительностью, но избегайте тяжелых операций внутри него
– Предупреждения
Убедитесь, что изменение статуса не нарушает логику обработки заказов и уведомлений клиентов
Альтернативы
Тип: action
Этот хук позволяет выполнять действия при изменении статуса заказа
Используйте его, если вам нужно выполнить действия при смене статуса, а не только при его установке после оплаты