提问者:小点点

WooCommerce中选定产品类别的自定义产品价格后缀


我想在WooCommerce中的价格标签后显示一段文本。我有一个用于我的函数的代码。php,但它显示在所有产品类别上。

我想知道是否有人知道如何使这个自定义文本只显示选定的类别;或者更好的是,未选择的产品类别,因为显示文本的产品类别比不显示文本的产品类别多得多。

我的实际代码:

add_filter( 'woocommerce_get_price_html', 'custom_price_message' );
function custom_price_message( $price ) {
    $mt = ' per M/T';
    return $price . $mt;
}

共1个答案

匿名用户

尝试以下代码,使用has_term()定义产品类别的条件函数:

add_filter( 'woocommerce_get_price_html', 'conditional_price_suffix', 20, 2 );
function conditional_price_suffix( $price, $product ) {
    // HERE define your product categories (can be IDs, slugs or names)
    $product_categories = array('t-shirts','hoodies');

    if( has_term( $product_categories, 'product_cat', $product->get_id() ) )
        $price .= ' ' . __('per M/T');

    return $price;
}

代码function.php活动子主题(或活动主题)的文件中。测试和工作。

要排除将要替换的已定义产品类别,请执行以下操作:

if( has_term( $product_categories, 'product_cat', $product->get_id() ) )

简单地说:

if( ! has_term( $product_categories, 'product_cat', $product->get_id() ) )