如何限制WooCommerce可变产品起始价格代码仅作用于指定分类
如何限制WooCommerce可变产品价格格式化代码仅作用于单个分类?
你可以通过在原有代码中添加产品分类检查逻辑来实现,只让代码对指定分类的可变产品生效。具体修改如下:
add_filter( 'woocommerce_variable_price_html', 'bbloomer_variation_price_format_min', 9999, 2 ); function bbloomer_variation_price_format_min( $price, $product ) { // 替换成你目标分类的slug、ID或名称(推荐用slug,更稳定) $target_category = '你的分类slug'; // 检查产品是否属于目标分类,不属于则直接返回原价格 if ( ! has_term( $target_category, 'product_cat', $product->get_id() ) ) { return $price; } $prices = $product->get_variation_prices('max'); $min_price = ($product->get_variation_price('max'))/1000; // 注意:此处注释标注的是Max price,建议变量名改为$max_price避免混淆 $price = sprintf( __( 'A partire da: %1$s al gr', 'woocommerce' ), wc_price( $min_price ) ); return $price; }
关键说明:
$target_category:将值替换为你需要生效的产品分类标识,可以是分类slug、ID或名称,优先用slug,因为分类名称可能修改,ID相对固定但不如slug直观。has_term()函数:专门用于验证产品是否属于指定分类,三个参数分别是目标分类标识、WooCommerce产品分类的固定 taxonomy(product_cat)、当前产品ID。- 若产品不属于目标分类,函数会直接返回原始价格,不执行后续的价格格式化逻辑,保证其他分类产品不受影响。
内容的提问来源于stack exchange,提问作者Valeria Pecoraro
相关产品推荐
相关产品推荐

