2017-02-08 14 views
2

私はWooCommerceで「新規注文」の電子メール通知を繰り返し顧客に伝えたいと考えています。新規注文の電子メール通知でお客様の注文数を取得

シンプルなようですが、私は約5つの方法を試みましたが、どれもうまくいきませんでした。

  • woocommerce_email_after_order_table
  • woocommerce_email_subject_new_order:私は2つの異なるフックにこれを入れて試してみました。

は動作するはずwc_get_customer_order_count($user->ID)のように思えるが、$userオブジェクトは右、これらのフックの関数に渡されていないように見えますか?

これは、ゲストで、登録ユーザーではなく、電子メールアドレスを比較して、これが可能なのでしょうか?

おかげ

答えて

2

WooCommerceの電子メール通知が受注に関連しています。

woocommerce_email_after_order_tableフックでは、フックされたカスタム関数の引数としてOrderオブジェクトがあり、$emailオブジェクトもあります。

$user_id = $user_id = $order->get_user_id(); 

$emailオブジェクトから新しい秩序の電子メール通知をターゲットにすることができます。その$orderオブジェクトと

、あなたはuser IDこの方法を得ることができます。

ので、作業コードがあることを行っている:あなたはまた、例えば代わり​​にwoocommerce_email_before_order_tableフックを使用することができます

add_action('woocommerce_email_after_order_table', 'customer_order_count', 10, 4); 
function customer_order_count($order, $sent_to_admin, $plain_text, $email){ 

    if ($order->get_user_id() > 0){ 

     // Targetting new orders (that will be sent to customer and to shop manager) 
     if ('new_order' == $email->id){ 

      // Getting the user ID 
      $user_id = $order->get_user_id(); 

      // Get the user order count 
      $order_count = wc_get_customer_order_count($user_id); 

      // Display the user order count 
      echo '<p>Customer order count: '.$order_count.'</p>'; 

     } 
    } 
} 

...

コードは、あなたのアクティブな子テーマのfunction.phpファイルに行きます(またはテーマ)または任意のプラグインファイルに保存されます。

このコードはテスト済みであり、動作します。

+0

これはすばらしいです、ありがとう!私は早く尋ねたかったら願っています。 :-P – protohominid

関連する問題