如何在WooCommerce中基于商品数量和购物车总金额计算运费
WooCommerce自定义运费规则实现方案
完全可以实现你需要的按「购物车商品数量+订单总金额」组合计算运费的需求,常见有两种实现路径:
方式1:使用内置运费规则配置
如果你不想写代码,可以直接在WooCommerce后台配置:
- 进入「WooCommerce → 设置 → 配送」,选择你要设置规则的配送区域
- 添加新的配送方法,选择「统一费率」
- 配合WooCommerce核心自带的条件判断功能,直接在费率设置里填写触发条件即可,不需要额外安装付费插件。
方式2:自定义代码实现(灵活性更高)
如果你的规则比较复杂,建议直接加代码片段到当前主题的functions.php文件,或者用代码片段管理插件插入即可,参考代码如下:
add_filter( 'woocommerce_package_rates', 'custom_shipping_cost_based_on_qty_and_total', 10, 2 ); function custom_shipping_cost_based_on_qty_and_total( $rates, $package ) { // 获取购物车商品总数量 $cart_qty = WC()->cart->get_cart_contents_count(); // 获取购物车总金额(不含运费) $cart_total = WC()->cart->subtotal; // 你的规则:数量大于3 且 总金额低于900时,运费设为80 if ( $cart_qty > 3 && $cart_total < 900 ) { foreach ( $rates as $rate_key => $rate ) { // 修改所有配送方式的运费为80,也可以指定特定配送方式 $rates[$rate_key]->cost = 80; } } return $rates; }
- 代码添加后记得清空WooCommerce缓存和购物车缓存再测试
- 如果需要新增其他组合规则,只需要在函数里新增对应的
if判断分支调整运费数值即可
内容的提问来源于stack exchange,提问作者Sreejith Vishnu
相关产品推荐
相关产品推荐

