You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce中特定品类商品价格小数位数自定义问题

解决WooCommerce指定品类商品价格小数位数问题

你的代码存在两个核心问题:

  • has_term() 函数的参数顺序错误,正确顺序应为 has_term( 分类标识, 分类法, 目标ID )
  • 仅依赖全局 $product 对象会导致部分场景(如购物车、订单页面)失效

修正后的基础版代码

add_filter( 'wc_get_price_decimals', 'custom_gas_price_decimals', 10, 1 );
function custom_gas_price_decimals( $decimals ) {
    // 优先获取全局产品对象
    global $product;
    
    // 若全局产品不存在,尝试从当前文章对象获取
    if ( ! is_a( $product, 'WC_Product' ) && is_singular( 'product' ) ) {
        $product = wc_get_product( get_the_ID() );
    }
    
    if ( is_a( $product, 'WC_Product' ) ) {
        // 检查产品是否属于'gas'产品分类(分类法为product_cat)
        if ( has_term( 'gas', 'product_cat', $product->get_id() ) ) {
            $decimals = 2;
        }
    }
    
    return $decimals;
}

兼容购物车/订单的增强版代码

如果需要在购物车、订单页面也生效,需额外处理价格计算逻辑:

// 前端显示时修改小数位数
add_filter( 'wc_get_price_decimals', 'custom_gas_price_decimals_display', 10, 1 );
function custom_gas_price_decimals_display( $decimals ) {
    global $product;
    
    if ( ! is_a( $product, 'WC_Product' ) && is_singular( 'product' ) ) {
        $product = wc_get_product( get_the_ID() );
    }
    
    if ( is_a( $product, 'WC_Product' ) && has_term( 'gas', 'product_cat', $product->get_id() ) ) {
        $decimals = 2;
    }
    
    return $decimals;
}

// 购物车/订单计算时修正价格小数位数
add_filter( 'woocommerce_get_price_excluding_tax', 'custom_gas_price_calculation', 10, 3 );
add_filter( 'woocommerce_get_price_including_tax', 'custom_gas_price_calculation', 10, 3 );

function custom_gas_price_calculation( $price, $product, $args ) {
    if ( has_term( 'gas', 'product_cat', $product->get_id() ) ) {
        $price = number_format( $price, 2, wc_get_price_decimal_separator(), wc_get_price_thousand_separator() );
        $price = (float) $price;
    }
    return $price;
}

关键说明

  • product_cat 是WooCommerce默认产品分类的分类法,若使用自定义分类法,需替换为对应分类法名称
  • 代码需添加到主题的 functions.php 文件或自定义插件中
  • 增强版通过额外钩子确保购物车、订单中的价格计算也遵循2位小数规则

内容的提问来源于stack exchange,提问作者João Pedro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:12:02