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

Add a suffix to the displayed price of mostly all products in Woocommerce

我尝试将 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 吗?

您忘记了函数中的$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 文件。它应该有效。

调用 $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');