在 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 即可,具体实现代码跟据理论状况调整即可。