Описание 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
Этот хук позволяет выполнять действия при изменении статуса заказа
Используйте его, если вам нужно выполнить действия при смене статуса, а не только при его установке после оплаты