1

新しい注文が作成されると、woocommerceは管理者に電子メールを送信し、顧客のIPアドレスも電子メール内に送信します。しかし、私はそれが仕事を得ることができない、ここで私がこれまでに得たものである:新しい注文電子メール通知で顧客のIPアドレスを表示

<?php echo get_post_meta($order->id, '_customer_ip_address', true); ?> 

このコードはmytheme/woocommerce/emails/admin-new-order.php

に任意のアイデアを行きますか?

ありがとうございました。

+0

**を** あなたがしようとした。このコードをどこに置くか正確に説明してください*。 (また、あなたは電子メールで 'echo'しないので、問題の可能性があります)。 –

+0

こんにちは@cale_b、私は私の質問を更新しました、コードはadmin-new-order.phpにあります。エコーについては、私が 'echo __( 'Customer IP Address'、 'woocommerce')に変更すると正しいでしょうか。 esc_html(get_post_meta($ order-> id、 '_customer_ip_address'、true))。 "\ n"; ' – davidchannal

答えて

2

(WooCommerceバージョンの追加互換性3+)

アップデート2:は管理新規受注通知用アドレスIPを表示するための条件を追加しました。 $email->id;

によって$email_id未定義の置き換えあなたは電子メール通知の任意の関連のフックを使用することができますし、WooCommerceメールテンプレートをオーバーライドする必要はありません。例怒鳴るで

、顧客のIPアドレスは、フックusing woocommerce_email_customer_details、単に顧客の詳細の前に表示されます。

add_action('woocommerce_email_customer_details', 'send_customer_ip_adress', 10, 4); 
function send_customer_ip_adress($order, $sent_to_admin, $plain_text, $email){ 

    // Just for admin new order notification 
    if('new_order' == $email->id){ 
     // WC3+ compatibility 
     $order_id = method_exists($order, 'get_id') ? $order->get_id() : $order->id; 

     echo '<br><p><strong>Customer IP address:</strong> '. get_post_meta($order_id, '_customer_ip_address', true).'</p>'; 
    } 
} 

このコードはテストされ、完全に機能しています。

アクティブな子テーマ(またはテーマ)のfunction.phpファイルにコードが入ります。また、任意のプラグインのPHPファイルにもあります。

あなたはこれらのフックは代わりにも使用することができます:**あなたは、これはおそらく**何よりも重要である試みた

woocommerce_email_order_details
woocommerce_email_before_order_table
woocommerce_email_after_order_table woocommerce_email_order_meta

+0

こんにちは@LoicTheAztecあなたのコードは、魅力のように動作します、ありがとう! – davidchannal

+0

IPの代わりに都市を受け取るのにとにかくありますか?私には多くの虚偽の命令がありますが、IPの背後には真実が示されます。 – marius

+1

@mariusはい、あなたは町を取得するために 'get_post_meta($ order-> get_id()、 '_billing_city'、true)'を使用します...私はWoocommerceバージョン3+と互換性がないので、この回答を更新しました – LoicTheAztec

関連する問題