[英]Changing Woocommerce Order Status based on order notes
我一直在尋找一種方法來根據訂單備注更改我們的 woocommerce 訂單狀態。 我們有一個卡處理器,它會在訂單獲得批准時添加訂單備注,但它會暫停訂單,因為卡只被授權而不被收費。 一旦訂單發貨,我們稍后會向卡收費,但我們需要將 go 的訂單進行“處理”,以便我們可以將訂單導出到我們的系統中,以便我們可以實際處理訂單(我們不通過 woocommerce 處理)。
但是我找到了這段代碼,我想知道是否可以修改它以提取訂單說明中的內容,因為我們的處理器添加了卡是否已被批准。
function mysite_woocommerce_payment_complete( $order_id ) {
error_log( "Payment has been received for order $order_id" );
}
add_action( 'woocommerce_payment_complete', 'mysite_woocommerce_payment_complete', 10, 1 );
這是一個通過處理打開暫停訂單狀態的示例。 您可以使用它,或者如果需要添加更多條件,請在此處提及或相應更新。 謝謝
function switch_hold_status_to_processing ($order_id) {
$order = new WC_Order( $order_id );
$order->update_status('processing');
}
add_action('woocommerce_order_status_on-hold', 'switch_hold_status_to_processing');
您可以使用wc_get_order_notes($args)
function 來獲取特定訂單的訂單備注。 它返回一個訂單注釋數組。 然后您可以遍歷數組以找到您需要的訂單注釋。 然后使用if
語句來驗證訂單備注的內容並更新狀態。
function mysite_woocommerce_payment_complete( $order_id ) {
$order_notes = wc_get_order_notes([
'order_id' => $order_id,
]);
foreach ($order_notes as $order_note){
if ($order_note->content == "Order verified"){
$order = new WC_Order( $order_id );
$order->update_status('processing');
break;
}
}
}
add_action( 'woocommerce_payment_complete', 'mysite_woocommerce_payment_complete', 10, 1 );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.