在 WooCommerce 搭建的某些系统中,订单的金额有时候会为 0,比如免费赠送的商品、免费领取小样、使用优惠券后购物车总金额为 0 等等情况。WooCommerce 默认还是需要支付一下,生成订单,以便后续处理。
当购物车金额为 0 时,如果默认选择了线上支付网关,这些支付网关一般都会因为支付金额为 0 而报错,导致支付失败。其实金额为 0 时,WooCommerce 是可以免支付直接下单的。
WooCommerce 免支付直接下单的代码
在下面的代码中,我们用 woocommerce_cart_needs_payment 这个 Filter,过滤 $need_payment 参数,当订单金额为 0 时,设置该参数为 0, 这样购物车中的支付按钮就会变成下单按钮,点击这个下单按钮,就可以免支付直接下单了。
- add_filter( 'woocommerce_cart_needs_payment', function($need_payment, $cart){
- if($cart->get_total('edit') == 0){
- $need_payment = false;
- }
- return $need_payment;
- }, 10,2);
除了购物车为 0 时,免支付下单,在一些预定系统,询价系统中,也是需要免支付直接下单的,我们参考上面的代码,修改 $need_payment 参数为 false 即可,具体实现代码跟据实际情况调整即可。
WooCommerce 购物车金额为 0 时,免支付直接下单
- 此资源下载价格为5元立即购买(VIP 免费)立即升级