2017-05-06 73 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