一些研究和測試後,我認爲爲正確的鉤子是這樣的WP掛鉤之一:
所以我已經使用了第一個,因爲它是最方便的「shop_order
「後類型:
add_action('save_post_shop_order', 'process_offline_order', 10, 3);
function process_offline_order($post_id, $post, $update){
// Orders in backend only
if(! is_admin()) return;
// Get an instance of the WC_Order object (in a plugin)
$order = new WC_Order($post_id);
// For testing purpose
$trigger_status = get_post_meta($post_id, '_hook_is_triggered', true);
// 1. Fired the first time you hit create a new order (before saving it)
if(! $update)
update_post_meta($post_id, '_hook_is_triggered', 'Create new order'); // Testing
if($update){
// 2. Fired when saving a new order
if('Create new order' == $trigger_status){
update_post_meta($post_id, '_hook_is_triggered', 'Save the new order'); // Testing
}
// 3. Fired when Updating an order
else{
update_post_meta($post_id, '_hook_is_triggered', 'Update order'); // Testing
}
}
}
您將能夠與此代碼輕鬆地測試。對我來說它工作正常。
我還與woocommerce_before_order_object_save
鉤試圖具有2個參數:
$order
(所述WC_Order對象)
$data_store
(數據通過WC_Data_Store類被存儲)
但我沒有得到它的工作,因爲我所期待的。我已經在WC_Order
save()
方法的源代碼中發現它。
究竟是什麼問題呢?你想做什麼? – Reigel
你的問題到底是什麼? –
我試圖觸發它可以連接到支付網關API當WooCommerce管理員創建代表其客戶之一的秩序的事件。 – Pro777