WooCommerce:订单总额为0时隐藏到店自提配送选项
实现WooCommerce订单总额为0时隐藏到店自提配送选项
你可以通过WooCommerce官方提供的woocommerce_package_rates钩子实现需求,无需安装额外插件,添加一段简单代码即可:
add_filter( 'woocommerce_package_rates', 'hide_local_pickup_for_zero_total_orders', 10, 2 ); function hide_local_pickup_for_zero_total_orders( $rates, $package ) { // 获取购物车订单总额(编辑模式数值,避免格式化干扰判断) $order_total = WC()->cart->get_total( 'edit' ); // 订单总额为0时,移除到店自提选项 if ( $order_total == 0 ) { foreach ( $rates as $rate_key => $rate ) { // 匹配到店自提的配送方式ID,默认是local_pickup,需和你后台设置一致 if ( 'local_pickup' === $rate->method_id ) { unset( $rates[$rate_key] ); break; } } } return $rates; }
注意事项:
- 确认配送方式Slug:如果你的到店自提方式Slug不是
local_pickup,需要修改代码对应值。可在WooCommerce后台「设置」→「配送」→「配送区域」中编辑到店自提方式,查看URL里的method_id参数,该值就是需要替换的Slug。 - 代码放置位置:
- 推荐用「Code Snippets」插件添加代码,避免主题更新导致代码丢失;
- 也可将代码添加到当前主题(优先子主题)的
functions.php文件末尾。
- 测试验证:添加0元商品到购物车,进入结算页确认到店自提选项已隐藏。
内容的提问来源于stack exchange,提问作者Laura Nixon
相关产品推荐
相关产品推荐

