Woocommerce - 仅显示类别(存档)页面上的最低价格

时间:2016-04-28 00:02:23

标签: php wordpress woocommerce categories price

我正在尝试在类别页面上显示最低价格而不是价格范围,同时继续在各个产品页面上显示价格范围。

我从其他人的问题中找到了这个答案:

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中时,它适用于整个网站。我只希望它适用于类别页面。

此外,当我使用此代码时,只有一个价格的商品最终没有显示价格。

我该怎么办?

这是我的意思截图: Screenshot of current category page

1 个答案:

答案 0 :(得分:0)

如果我找到了你,那么只要有一系列的价格,你就需要显示最低价格。因此,基本上只有在设置了产品的最低价格时才需要更改$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;
}