Описание woocommerce_valid_order_statuses_for_order_again
— Filter
Хук woocommerce_valid_order_statuses_for_order_again позволяет изменить доступные статусы заказов, которые могут быть использованы для повторного заказа в WooCommerce. Он срабатывает во время генерации ссылки ‘Повторить заказ’ на страницах заказов и позволяет настроить, какие статусы заказов можно использовать для этой функциональности
Примеры использования
Пример добавления статуса ‘На удержании’ в доступные статусы для повторного заказа:
add_filter('woocommerce_valid_order_statuses_for_order_again', function($valid_order_statuses) {
$valid_order_statuses[] = 'wc-on-hold';
return $valid_order_statuses;
});
В этом примере мы добавляем статус ‘На удержании’ в список доступных статусов для повторного заказа
Пример удаления статуса ‘Отменен’ из доступных статусов для повторного заказа:
add_filter('woocommerce_valid_order_statuses_for_order_again', function($valid_order_statuses) {
$valid_order_statuses = array_diff($valid_order_statuses, ['wc-cancelled']);
return $valid_order_statuses;
});
Здесь мы удаляем статус ‘Отменен’ из списка доступны статусов для повторного заказа
Пример изменения статусов для повторного заказа в зависимости от условий:
add_filter('woocommerce_valid_order_statuses_for_order_again', function($valid_order_statuses) {
if (user_can(get_current_user_id(), 'administrator')) {
$valid_order_statuses[] = 'wc-cancelled';
}
return $valid_order_statuses;
});
В этом примере администраторы могут повторно заказывать отмененные заказы
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо настроить статусы заказов, доступные для повторного заказа, в зависимости от бизнес-логики вашего магазина
– Производительность
Хук не должен значительно влиять на производительность, так как изменения касаются только логики обработки статусов
– Предупреждения
Будьте осторожны с изменениями, чтобы не нарушить ожидаемое поведение пользователей при повторном заказе
Альтернативы
Тип: filter
Этот хук позволяет изменить статусы заказов в других сценариях, связанных с заказами
Используйте его, если нужно изменить статусы заказов в других контекстах, например, при отображении заказов в админке