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

如何在WooCommerce中根据购物车总额添加动态分级手续费?

在WooCommerce中根据购物车总额添加动态分级手续费

我可以帮你实现这个需求,下面是经过验证的代码方案,它会根据购物车总额自动计算并添加分级手续费:

add_action( 'woocommerce_cart_calculate_fees', 'custom_fee_based_on_cart_total', 10, 1 ); 
function custom_fee_based_on_cart_total( $cart_object ) { 
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; 

    // 手续费百分比,可根据需求自行修改
    $fee_percentage = 12; 

    // 获取当前购物车的商品总额
    $cart_total = $cart_object->cart_contents_total; 

    // 分级计算逻辑:购物车总额≥25时按百分比收取手续费,否则不收取
    $fee = $cart_total >= 25 ? $cart_total * $fee_percentage / 100 : 0; 

    if ( $fee != 0 ) {
        // 添加手续费,名称支持多语言,最后一个参数false表示该费用不含税
        $cart_object->add_fee( __( "Kosten MandaBai", "woocommerce" ), $fee, false ); 
    }
}

代码关键说明:

  • 采用WooCommerce官方推荐的woocommerce_cart_calculate_fees钩子触发费用计算,确保在购物车和结账流程中正确执行
  • 开头的判断条件is_admin() && ! defined( 'DOING_AJAX' )是为了避免在后台管理操作时误加手续费,仅在前端用户流程中生效
  • 你可以直接修改$fee_percentage的值调整手续费比例,比如改成15就对应15%的手续费
  • 分级规则可通过修改$cart_total >= 25这个条件调整,比如改成$cart_total >= 50就只对总额50以上的订单收取手续费
  • 如果需要手续费包含税费,只需把add_fee方法的第三个参数改为true即可

内容的提问来源于stack exchange,提问作者G.T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:54