如何在Woocommerce中按购买数量区间设置阶梯运费价格
Woocommerce按商品数量设置阶梯运费的操作方案
方案1:无插件自定义代码实现(最稳定)
- 提前备份网站文件与数据库,避免修改失误导致异常
- 进入WordPress后台,依次打开「外观」-「主题文件编辑器」,在右侧文件列表找到当前主题的
functions.php文件;也可通过FTP工具访问/wp-content/themes/当前激活主题目录/路径找到该文件 - 在
functions.php文件末尾添加如下代码:
add_filter( 'woocommerce_package_rates', 'custom_tiered_shipping_cost_by_qty', 10, 2 ); function custom_tiered_shipping_cost_by_qty( $rates, $package ) { // 获取购物车总商品数量 $total_product_qty = WC()->cart->get_cart_contents_count(); // 按数量区间设置运费 if ( $total_product_qty >= 1 && $total_product_qty <= 5 ) { $custom_shipping_cost = 60; } elseif ( $total_product_qty >= 6 ) { $custom_shipping_cost = 90; } // 更新所有可用运费方式的费用 foreach ( $rates as $rate_id => $rate ) { $rates[$rate_id]->cost = $custom_shipping_cost; } return $rates; }
- 保存修改后,进入Woocommerce后台「状态」-「工具」,点击「清除Woocommerce缓存」,同时清空浏览器缓存完成配置。
补充说明:如果担心主题更新会覆盖
functions.php的修改内容,可以安装Code Snippets插件,将上述代码作为独立代码片段添加并启用,无需修改主题文件,兼容性更强。
生效验证
- 往购物车加入3件商品,进入结算页确认运费显示为60美元
- 往购物车加入6件及以上商品,进入结算页确认运费显示为90美元
- 后续需要调整运费区间或金额时,直接修改代码中对应的数值即可。
内容的提问来源于stack exchange,提问作者PapT
相关产品推荐
相关产品推荐

