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

如何在WooCommerce设置固定运费加每件额外费用(1件$12,每件加$4)

Hey there! 刚好能帮你搞定这个运费规则——1件收$12,每多1件加$4的需求,WooCommerce其实有现成的配置方式,也可以用代码灵活自定义,我给你两种靠谱方案:

方案1:用WooCommerce内置功能直接配置

这是最简单的方式,不用写代码就能实现:

  • 先登录你的WooCommerce后台,找到设置 > 配送菜单
  • 选择你要设置这个规则的配送区域(比如“本地配送”或“指定国家/地区”),点击进入编辑页面
  • 点击「添加配送方式」,选择「统一运费」后点击「继续」
  • 在统一运费的设置面板里,找到运费计算方式,选择「基于商品数量」
  • 接下来填写费用:
    • 把基础运费设为$12(这就是1件商品的运费)
    • 把每件额外运费设为$4——这里要注意,WooCommerce的这个选项默认针对「超过1件」的商品,刚好匹配你的需求:1件=12,2件=12+4=16,3件=12+4×2=20,完全符合预期
  • 最后点击「保存配送方式」,去前台购物车添加不同数量的商品,验证运费是否正确
方案2:用代码自定义(适合特殊场景)

如果你的店铺有额外条件(比如只针对特定商品分类、特定用户组),或者内置设置满足不了复杂逻辑,可以用代码实现。把下面的代码添加到子主题的functions.php文件里,或者用「Code Snippets」这类插件添加(更安全,避免主题更新丢失代码):

add_filter( 'woocommerce_package_rates', 'custom_fixed_plus_per_item_shipping', 10, 2 );
function custom_fixed_plus_per_item_shipping( $rates, $package ) {
    // 遍历所有配送方式,只针对统一运费(flat_rate)生效
    foreach ( $rates as $rate_key => $rate ) {
        if ( 'flat_rate' === $rate->method_id ) {
            // 获取购物车总商品数量
            $total_items = WC()->cart->get_cart_contents_count();
            // 计算运费:基础$12 + 超过1件的部分每件$4
            $calculated_cost = 12 + max( 0, $total_items - 1 ) * 4;
            // 更新运费金额
            $rates[$rate_key]->cost = $calculated_cost;
            // 如果需要同步税费,可以在这里调整,示例中默认清空税费(按需修改)
            $rates[$rate_key]->taxes = array();
        }
    }
    return $rates;
}

添加完代码后,记得去WooCommerce的配送设置里,先禁用再启用一次统一运费,刷新规则缓存确保代码生效。

小提示

  • 不管用哪种方式,一定要多测试不同商品数量的场景,确认运费计算准确
  • 如果用代码方案,尽量不要直接修改父主题的functions.php,用子主题或代码插件更稳妥
  • 如果有多个配送区域,要确保每个区域的设置或代码逻辑都对应上

内容的提问来源于stack exchange,提问作者JonYork

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:06:27