Я пытаюсь отобразить самую низкую цену вместо диапазона цен на страницах категорий, продолжая отображать диапазон цен на отдельных страницах продукта.
Я нашел этот ответ от чужого вопроса:
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
$price = '';
if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
$price .= '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->get_price());
}
return $price;
}
И это работает, но когда я помещаю код в functions.php
, это относится ко всему сайту. Я только хочу, чтобы это применялось к страницам категорий.
Кроме того, когда я использую этот код, товары с единственной ценой не отображаются.
Что я могу сделать?
Вот скриншот того, что я имею в виду:
Снимок экрана текущей страницы категории
Если я вас правильно понял, вам просто нужно отображать минимальную цену, когда есть диапазон цен. Так что в основном вам нужно изменить $price
HTML, только если установлена минимальная цена товара (если она не установлена, тогда товар имеет единую цену и никаких изменений не требуется). Я также включил проверку, является ли это страницей категории. Вот код:
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
if ( ! empty($product->min_variation_price) && is_product_category() ) {
$price = '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->get_price());
}
return $price;
}
Других решений пока нет …