在Woocommerce中几乎所有产品的显示价格上添加后缀

时间:2019-03-04 15:59:53

标签: php wordpress woocommerce product price

我尝试将is_productif ( $product->get_id() !== xxx )添加到函数中,但这会使函数崩溃。

这是我要添加到除一个产品之外的所有产品中的功能。

function change_product_price_html($price){
    if ( $product->get_id() !== 555 ) {
    $newPrice   = $price;
    $newPrice   .= " / m3";
    return $newPrice;
    }
}

add_filter('woocommerce_get_price_html', 'change_product_price_html');

我可能首先需要一个数组来获取产品ID吗?

2 个答案:

答案 0 :(得分:1)

您忘记了函数中的$product参数和其他错误。请尝试:

add_filter('woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price, $product ){
    if ( $product->get_id() !== 555 ) {
        $price .= __(" / m3");
    }
    return $price;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。


对于仅使用is_product()条件标签的单个产品页面:

add_filter('woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price, $product ){
    if ( is_product() && $product->get_id() !== 555 ) {
        $price .= __(" / m3");
    }
    return $price;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

答案 1 :(得分:0)

调用$ product作为全局变量。就这样

function change_product_price_html($price){
global $product
if ( $product->ID !== 555 ) {
$newPrice   = $price;
$newPrice   .= " / m3";
return $newPrice;
}
}

add_filter('woocommerce_get_price_html', 'change_product_price_html');