是否可以将所有新订单设置为暂停而不先进行处理?
我需要获取资金,但订单需要暂停而不是处理,这样我才能确保在触发向供应商发送电子邮件之前收到付款 .
我找到了一些代码,允许我将所有新订单更改为暂停,但是当付款被授权时,订单将设置为处理 .
pending payment --> processing (triggers email) --> on-hold
Screenshot of Order Notes that show this
这是我找到的代码:
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_onhold_order' );
function custom_woocommerce_auto_onhold_order( $order_id ) {
global $woocommerce;
if ( !$order_id )
return;
$order = new WC_Order( $order_id );
$order->update_status( 'on-hold' ); //All new orders go to "on-hold"
}
我一直在寻找触发订单状态的操作设置为支付授权处理但是我找不到它 .
非常感谢所有帮助!
编辑:我已经设法偶然发现了一段似乎有用的代码片段 .
add_filter( 'woocommerce_payment_complete_order_status', 'custom_update_order_status', 10, 2 );
function custom_update_order_status( $order_status, $order_id ) {
return 'on-hold';
}
1 回答
您可以尝试以下操作,即 set the status "on-hold" on order creation (更新状态操作在订单创建并保存在数据库中后出现):
代码位于活动子主题(或活动主题)的function.php文件中 . 经过测试和工作 .