特定产品类别的 WooCommerce 购物车商品价格后缀

问题描述

我需要在 WooCommerce 购物车上为特定类别的 woocommerce 产品的价格添加后缀文本。

这是我的代码

add_filter( 'woocommerce_cart_item_price','filter_woocommerce_cart_item_price',10,3 ); 
add_filter( 'woocommerce_cart_item_subtotal',3 ); 
function filter_woocommerce_cart_item_price( $wc,$cart_item,$cart_item_key ) { 
    if(!in_array('67',$cart_item['data']->get_category_ids()))
    {
        return $wc;
    }
    else{
        return $wc . ' Monthly';
    }
}; 

问题是它只适用于简单的产品。似乎不会影响可变产品的价格(我在 3 个不同的网站上进行了测试)。

知道我错过了什么吗?

解决方法

要使其也适用于购物车中的产品变体项目,请改用以下内容:

add_filter( 'woocommerce_cart_item_price','cart_item_amounts_prefix',10,3 ); 
add_filter( 'woocommerce_cart_item_subtotal',3 ); 
function cart_item_amounts_prefix( $amount,$cart_item,$cart_item_key ) { 
    if( has_term( array(67),'product_cat',$cart_item['product_id'] ) ){
        $amount .= ' ' . __("Monthly","woocommerce");
    }
    return $amount;
}

代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。