通常,wooCommerce应该自动完成虚拟产品的订单.但它没有,这是一个真正的问题,甚至像BUG一样.
所以在这一点上你可以找到有用的东西(但不是很方便):
1)一个代码片段(你可以在wooCommerce docs中找到):
Run Code Online (Sandbox Code Playgroud)/** * Auto Complete all WooCommerce orders. */ add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); }但此代码段不适用于BACS*,付款时付款和支票付款方式.它适用于Paypal和信用卡网关支付方式.
*BACS 是直接银行转账付款方式
而......
2)插件: WooCommerce自动完成订单
此插件适用于所有付款方式,但不适用于其他信用卡网关付款方式.
我的问题:
在第1点中使用(作为基础)wooCommerce代码段:
如何实现基于woocommerce支付方式的条件代码?
我的意思是:如果付款方式不是"BACS","付款时付款"和"支票",则应用代码段(对于虚拟产品的付款订单,更新状态为"已完成").
我不是一个wooCommerce巨型专家编码器,所以我还没有找到如何在woocommerce订单中定位付款方式.
一些帮助将是非常好的.
谢谢.