Описание woocommerce_valid_order_statuses_for_payment_complete
— Filter
Хук woocommerce_valid_order_statuses_for_payment_complete позволяет изменить массив статусов заказов, которые могут быть помечены как оплаченные. Он срабатывает во время обработки завершения платежа и позволяет настроить, какие статусы заказов считаются действительными для пометки как оплаченные
Примеры использования
Пример добавления нового статуса заказа ‘processing’ в список действительных статусов:
add_filter('woocommerce_valid_order_statuses_for_payment_complete', function($valid_order_statuses) {
$valid_order_statuses[] = 'processing';
return $valid_order_statuses;
});
В этом примере мы добавляем статус ‘processing’, чтобы он мог быть помечен как оплаченный
Пример удаления статуса ‘pending’ из списка действительных статусов:
add_filter('woocommerce_valid_order_statuses_for_payment_complete', function($valid_order_statuses) {
if (($key = array_search('pending', $valid_order_statuses)) !== false) {
unset($valid_order_statuses[$key]);
}
return $valid_order_statuses;
});
Здесь мы удаляем статус ‘pending’, чтобы он не мог быть помечен как оплаченный
Пример изменения статуса ‘on-hold’ на ‘completed’:
add_filter('woocommerce_valid_order_statuses_for_payment_complete', function($valid_order_statuses) {
if (!in_array('completed', $valid_order_statuses)) {
$valid_order_statuses[] = 'completed';
}
return $valid_order_statuses;
});
В этом примере мы добавляем статус ‘completed’, если он не уже существует в массиве
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить статусы заказов, которые могут быть помечены как оплаченные, в зависимости от вашего бизнес-процесса
– Производительность
Хук не должен значительно влиять на производительность, так как изменения касаются только логики обработки статусов
– Предупреждения
Будьте осторожны с изменением статусов, чтобы не нарушить логику обработки платежей
Альтернативы
Тип: filter
Этот хук позволяет изменить массив всех статусов заказов в WooCommerce
Используйте его, если необходимо изменить не только статусы, действительные для платежей, но и другие статусы заказов