За замовчуванням WooCommerce показує діапазон цін для товарів із варіаціями. Це може бути незручно для покупців, особливо якщо вони хочуть дізнатися ціну конкретного товару в каталозі, а не бачити діапазон, який не дає чіткого уявлення про ціну одиниці та ускладнює порівняння. Через це покупцеві доводиться відкривати товар і вибирати варіант. Натомість можна задати варіант за замовчуванням для кожного товару й показувати лише його ціну, а поруч вивести підказку за допомогою плагіна «WooCommerce Extra Price Fields». Наприклад, тоді ціна відображатиметься як «10 $ (1 шт.)», тоді як серед варіацій можуть бути також упаковка, ящик, десяток тощо.
Щоб це реалізувати, потрібно виконати такі кроки:
- Створити фільтр для зміни ціни варіативного товару.
- Визначити, який варіант задано за замовчуванням.
- Повернути ціну варіанта за замовчуванням.
// для вариативных товаров отображать цену вариации по умолчанию
add_filter('woocommerce_variable_sale_price', 'custom_variation_price', 10, 2);
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price($price, $product) {
$available_variations = $product->get_available_variations();
foreach ( $available_variations as $variation ) {
$isDefVariation=false;
foreach($product->get_default_attributes() as $key=>$val){
if($variation['attributes']['attribute_'.$key]==$val){
$isDefVariation=true;
}
}
if($isDefVariation){
return $variation['price_html']; // отформатированная цена (со скидкой зачеркнута), это строка
}
}
return $price;
}
Якщо варіант за замовчуванням не задано, відображатиметься діапазон цін, як і раніше.
