2017-07-26 3 views
3

postの行に沿って、管理者が支払いを使用して管理パネル経由で注文を作成すると、ゲートウェイ。WooCommerce 3.0:管理者が作成したバックエンドの注文に対応するフックを見つけることができません

私は次のコードを追加しました:

add_action('woocommerce_process_shop_order_meta', array($this, 'process_offline_order')); 
    add_action('woocommerce_admin_order_actions_end', array($this, 'process_offline_order2')); 
    add_action('woocommerce_save_post_shop_order', array($this, 'process_offline_order3')); 

を私はそれらのそれぞれの方法にはXdebug breakpポイントにドロップしようとしましたが、それらのどれもヒットしなかっなっています。

+0

何が問題なのですか?あなたは何をしようとしているのですか? – Reigel

+0

あなたの問題は何ですか? –

+0

私は、WooCommerce管理者が顧客の一人のために注文を作成したときに、支払いゲートウェイAPIに接続できるイベントをトリガーしようとしています。 – Pro777

答えて

1

いくつかの研究とテストの後、私は、そのための正しいフックがこの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 
     } 
    } 
} 

あなたは、このコードで簡単に調べることができるようになります。私にとってはうまくいっています。 Iはまた、2つの引数有するwoocommerce_before_order_object_saveフックと試みた


  • $order(WC_Orderオブジェクト)
  • $data_store(データWC_Data_Storeクラスを通じて格納されます)

しかし、私は期待していたように、うまく動作しませんでした。私はこれをソースコードWC_Ordersave()の方法で見つけました。

+1

このコードはすべて完璧に見えますが、そのメソッドをローカルまたはテストサーバーで起動することができません。私はそれが私の構成かもしれないと思います。 – Pro777

関連する問題