在我的自定義插件(在WooCommerce 2.6.x和3.x中工作)中,我需要在創建新訂單時獲取訂單ID。我嘗試了不同的掛鉤,但它們只在客戶創建訂單時才起作用,而不是在從管理員創建訂單時起作用。WooCommerce掛鉤從管理器創建訂單
我想:
- woocommerce_new_order
- woocommerce_thankyou
- woocommerce_checkout_order_processed
- woocommerce_checkout_update_order_meta
更新
最後,我用這個:
add_action('wp_insert_post', function($order_id)
{
if(!did_action('woocommerce_checkout_order_processed')
&& get_post_type($order_id) == 'shop_order'
&& validate_order($order_id))
{
order_action($order_id);
}
});
其中validate_order是:不執行
function validate_order($order_id)
{
$order = new \WC_Order($order_id);
$user_meta = get_user_meta($order->get_user_id());
if($user_meta)
return true;
return false;
}
由於validate_order的動作,當你開始創建訂單。我使用!did_action('woocommerce_checkout_order_processed')
,因爲如果訂單是由客戶創建的,我不希望執行該操作(我有一個具體操作,使用woocommerce_checkout_order_processed
)。
這應該有希望得到它:'WC() - > order-> id;' – stevenkellow