Описание wc_shipping_enabled
— Filter
Хук wc_shipping_enabled позволяет изменить состояние доставки в WooCommerce. Он срабатывает при проверке, включена ли доставка для магазина, и позволяет программно управлять этой настройкой
Примеры использования
Пример отключения доставки для конкретного магазина:
add_filter('wc_shipping_enabled', function($enabled) {
// Отключаем доставку, если магазин находится в режиме тестирования
return false;
});
В этом примере мы отключаем доставку, если магазин находится в тестовом режиме
Пример включения доставки только для определенной категории товаров:
add_filter('wc_shipping_enabled', function($enabled) {
// Проверяем, есть ли в корзине товары из определенной категории
if ( WC()->cart->is_empty() || !has_term('доступные_товары', 'product_cat')) {
return false; // Отключаем доставку
}
return $enabled;
});
Здесь мы отключаем доставку, если в корзине нет доступных товаров
Пример включения доставки только для зарегистрированных пользователей:
add_filter('wc_shipping_enabled', function($enabled) {
// Отключаем доставку для незарегистрированных пользователей
if ( !is_user_logged_in() ) {
return false;
}
return $enabled;
});
В этом примере доставка доступна только для зарегистрированных пользователей
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо программно контролировать доступность доставки в зависимости от условий, таких как статус пользователя или содержимое корзины
– Производительность
Поскольку хук выполняется при проверке состояния доставки, он не должен значительно влиять на производительность
– Предупреждения
Обязательно тестируйте изменения, чтобы избежать случайного отключения доставки для всех пользователей
Альтернативы
Тип: filter
Этот хук позволяет изменять доступные методы доставки, а не их состояние. С помощью него можно настроить доступность конкретных методов доставки в зависимости от условий
Используйте его, если необходимо более детально управлять методами доставки, а не только их состоянием