我正在尝试在类别页面上显示最低价格而不是价格范围,同时继续在各个产品页面上显示价格范围。
我从别人的问题中找到了这个答案:
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;
}