Contact Form 7 でIPアドレスやホスト名を取得する設定や使い方

WordPressのプラグイン、Contact Form 7 で投稿者のIPアドレス・ホスト名・ブラウザー情報・リファラーを取得するカスタマイズ設定です。また、当サイトで設定している「メッセージ本文:」のテンプレートも参考に載せています。

各種情報を取得するカスタマイズ設定

IPアドレスを取得

  1. 次の特別なメールタグメッセージ本文:のテキストボックス内にコピペするだけです。

    
    [_remote_ip]
    

ホスト名取得

  1. 現在お使いのテーマのfunctions.phpに次の記述を書き足します。ちなみにホスト名とは、「IPアドレスを人が分かりやすいように変換したもの」です。夜のお仕事は関係ないです。

    
    //Contact Form 7 ホスト名取得 cf. http://ja.forums.wordpress.org/topic/3470
    add_filter('wpcf7_special_mail_tags', 'wpcf7_special_mail_tag_for_remote_host',10,2);
    function wpcf7_special_mail_tag_for_remote_host($output, $name)
    {
    // Special [wpcf7.remote_host] tag
    if(!isset($re_addr)){ $re_addr = $_SERVER['REMOTE_ADDR']; }
    if('wpcf7.remote_host' == $name){ $output = gethostbyaddr($re_addr); }
    return $output;
    }
    
  2. 次のショートコードを Contact Form 7 のメッセージ本文:のテキストボックス内にコピペすれば完了です。

    
    [wpcf7.remote_host]
    

ブラウザー情報取得

  1. 現在お使いのテーマのfunctions.phpに次の記述を書き足します。

    
    //Contact Form 7 ブラウザー情報取得 cf. http://ja.forums.wordpress.org/topic/3470
    add_filter('wpcf7_special_mail_tags', 'wpcf7_special_mail_tag_for_remote_ua',10,2);
    function wpcf7_special_mail_tag_for_remote_ua($output, $name)
    {
    // Special [wpcf7.remote_ua] tag
    if(!isset($u_agent)){ $u_agent = $_SERVER['HTTP_USER_AGENT']; }
    if('wpcf7.remote_ua' == $name){ $output = $u_agent; }
    return $output;
    }
    
  2. 次のショートコードを Contact Form 7 のメッセージ本文:のテキストボックス内にコピペすれば完了です。

    
    [wpcf7.remote_ua]
    

リファラー取得

  1. 現在お使いのテーマのfunctions.phpに次の記述を書き足します。

    
    //contact form 7 リファラー取得
    add_filter('wpcf7_special_mail_tags', 'wpcf7_special_mail_tag_for_referer',10,2);
    function wpcf7_special_mail_tag_for_referer($output, $name)
    {
    // Special [wpcf7.remote_referer] tag
    if(!isset($re_referer)){ $re_referer = $_SERVER["HTTP_REFERER"]; }
    if('wpcf7.remote_referer' == $name){ $output = $re_referer; }
    return $output;
    }
    
  2. 次のショートコードを Contact Form 7 のメッセージ本文:のテキストボックス内にコピペすれば完了です。

    
    [wpcf7.remote_referer]
    
  3. 次の特別なタグで同じようなことができます。むしろこちらの方が、リファラー情報がないときでも投稿のパーマリンクを出力できます。

    
    [_post_url]
    
  4. 上記ショートコードと上記特別なタグの両方を使えば、リファラー設定の確認と投稿元URLの確認ができます。

「メッセージ本文:」に記述するテンプレート

自分へ届くメッセージ本文のテンプレート

  1. 当サイトではメールメッセージ本文:には次のとおり設定しています。

    
    差出人: [your-name] <[your-email]>
    日付: [_date] [_time]
    題名: [your-subject]
    
    ■メッセージ本文:
    [your-message]
    
    ----------------------------
    ■投稿者情報
    ホスト名:[wpcf7.remote_host] (IP: [_remote_ip])
    参照元:[wpcf7.remote_referer]
    ブラウザ:[wpcf7.remote_ua]
    
    ■ページ情報
    タイトル: [_post_title] ([_post_name])
    ページURL: [_post_url]
    フォームURL: [_url]
    contact-form-7-mail.png

自動返信するメッセージ本文のテンプレート

  1. メール(2)(自動返信用設定)のメッセージ本文:には次のとおり設定しています。

    
    このメールは 運命 https://unmei.in のお問い合わせフォームから自動送信されました。
    
    差出人: [your-name] <[your-email]>
    日付: [_date] [_time]
    題名: [your-subject]
    
    メッセージ本文:
    [your-message]
    
    ----------------------------
    このメールに心当たりのない方はお手数ですが本メールを破棄してください。
    
    ----------------------------
    ■投稿者情報
    ホスト名:[wpcf7.remote_host] (IP: [_remote_ip])
    参照元:[wpcf7.remote_referer]
    ブラウザ:[wpcf7.remote_ua]
    
    contact-form-7-mail-2.png

他サイトの参考になるページへのリンクです。日付は各ページの公開日もしくは最終更新日です(2012年2月現在)。ありがとうございます。