Описание woocommerce_variation_is_purchasable
— Filter
Хук woocommerce_variation_is_purchasable позволяет изменить доступность вариаций товара для покупки. Он срабатывает при проверке, может ли конкретная вариация товара быть куплена, и предоставляет возможность задать свои условия для этой проверки
Примеры использования
Пример скрытия вариации, если она не в наличии:
add_filter('woocommerce_variation_is_purchasable', function($is_purchasable, $product_variation) {
if (!$product_variation->is_in_stock()) {
return false;
}
return $is_purchasable;
}, 10, 2);
В данном примере мы проверяем наличие вариации и, если она не в наличии, делаем её недоступной для покупки
Пример ограничения покупки вариации по пользовательскому полю:
add_filter('woocommerce_variation_is_purchasable', function($is_purchasable, $product_variation) {
$custom_field_value = get_post_meta($product_variation->get_id(), '_custom_field', true);
if ($custom_field_value === 'no') {
return false;
}
return $is_purchasable;
}, 10, 2);
В этом примере мы проверяем значение пользовательского поля и запрещаем покупку вариации, если поле имеет значение ‘no’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо динамически контролировать доступность вариаций товара на основе различных условий
– Производительность
Хук не должен значительно влиять на производительность, однако избегайте сложных вычислений внутри него
– Предупреждения
Будьте осторожны с условиями, которые могут привести к неожиданному поведению на странице товара
Альтернативы
Тип: filter
Этот хук позволяет управлять доступностью самого товара, а не его вариаций
Используйте его, если нужно контролировать доступность всего товара, а не отдельных вариаций