2017-05-06 88 views
0

我有一個hook to woocommerce_payment_complete,其中我將訂單發送給分銷商。這工作正常。 現在,由於我也通過第三方市場銷售,有時我想從管理面板創建訂單,我希望通過將訂單狀態設置爲「處理」來觸發woocommerce_payment_complete掛鉤,但事實並非如此。 有沒有辦法通過手動創建訂單來觸發此掛鉤?手動創建訂單時觸發woocommerce_payment_complete

感謝

+0

如果您使用的鉤子已經在使用某些代碼,將其包含在您的問題中可能會很有用。爲什麼你想使用'woocommerce_payment_complete'鉤子來手動創建一個訂單*具有'處理'狀態*?這看起來很奇怪,不知道這個鉤子究竟做了什麼。 – LoicTheAztec

+0

Hi @LoicTheAztec。掛鉤將訂單項發送給分銷商。當用戶創建訂單併爲其付款時,我已經使用woocomerce_payment_complete,這是完美的。但是現在我從網站外部獲得我想要手動輸入的訂單,並且我需要在woocomerce_payment_complete掛鉤中使用相同的邏輯。由於我將訂單設置爲處理狀態,但我不打電話給 – Damian

+0

,因爲這個鉤子在訂單完成時顯式調用,所以我會使用相同的鉤子。所以這就是爲什麼我要求你'woocommerce_payment_complete'掛鉤功能代碼。沒有它,我無法做出有用的答案。 – LoicTheAztec

回答

0

您可以使用下面的設置「處理」的管理訂單。 action_woocommerce_process_shop_order_meta用於檢測訂單更新。

// define the woocommerce_admin_order_actions_end callback 
function action_woocommerce_admin_order_actions_end($order_id) { 
    global $woocommerce; 
    if (!$order_id) 
     return; 
    $order = new WC_Order($order_id); 

    $order_status = $order->get_status(); 
    if ($order_status != "failed") { 
     $order->update_status('processing'); 
    } 
}; 

// add the action 
add_action('action_woocommerce_process_shop_order_meta', 'action_woocommerce_admin_order_actions_end', 10, 1); 
+0

嗨,那不是我想要做的。我可以手動將訂單狀態設置爲'正在處理'。我想要的是當我這樣做時,運行hook'woocommerce_payment_complete'。 – Damian