MW WP Formプラグインで管理者宛メールとデータベースにフォーム送信者情報を追加してみる

WordPressのMW WP Formプラグインで、管理者宛メールとデータベースにフォーム送信者情報(IPとかユーザーエージェントなど)を追加するフィルターフックのやり方。

手順

  1. テーマ内のfunction.phpにフィルターフックを追加する。mwform_custom_mail_tag_mw-wp-form-xxxにフィルターフックをかける。
  2. MW WP Formプラグインの「フォームを編集」から、追加したキーを管理者宛メール設定の「本文」に入れる。
  3. 「問い合わせデータをデータベースに保存」にチェックする。

mwform_custom_mail_tag_mw-wp-form-xxxのフィルターフック

※ 詳しくは公式サイトのドキュメントを参照:
mwform_custom_mail_tag_mw-wp-form-xxx | MW WP Form

要するに、オリジナルの「メールタグ」として、送信者のユーザーエージェント、IP、ホストなどを定義してしまえば良いということです。

/**
 * {user_agent} UAに変換
 * {ip} IPに変換
 * {host} HOSTに変換
 * {send_datetime} 送信日時に変換
 * 
 * @param string $value 送信された値
 * @param string $key メールタグ
 * @param int $insert_contact_data_id データベースに保存した場合、そのときの Post ID
 */
function add_sender_info( $value, $key, $insert_contact_data_id ) {

    if ( $key === 'user_agent' ) {
        return $_SERVER["HTTP_USER_AGENT"];
    }
    if ( $key === 'ip' ) {
        $ip = $_SERVER["REMOTE_ADDR"];
        return $ip;
    }
    if ( $key === 'host' ) {
        $host = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
        return $host;
    }
    if ( $key === 'send_datetime' ) {
        $org_timezone = date_default_timezone_get();
        date_default_timezone_set('Asia/Tokyo'); //タイムゾーンを日本に
        $Datetime = date("Y年n月j日 H:i:s");
        date_default_timezone_set($org_timezone); //タイムゾーン戻す
        return $Datetime;
    }

    return $value;
}

add_filter( 'mwform_custom_mail_tag_mw-wp-form-xxx', 'add_sender_info', 10, 3 );

「フォームを編集」から、管理者宛メール設定で本文に追加したキーを入力し、「問い合わせデータをデータベースに保存」にチェックする。

screenshot-stg.utsude.com 2017-07-15 13-59-15.png

これで、管理者宛メールに送信者情報が入り、かつデータベースに保存時にも送信者情報として各項目が追加されるようになります。

  • コメント

    1. 匿名希望
      2017/07/20(木) 23:42:05

      オペレーター21O:株で大損したので、データベースで
      「株で絶対損しない(秘)方法」
      という情報を見つけて3万Gで買ったら
      送られてきたメールに
      「株をやめなさい」
      とだけ書いてありました。

      これは詐欺で訴えることができるのでしょうか?

    2. 匿名希望
      2017/07/20(木) 23:42:05

      おおお、やっとつながったぞ、
      このポンコツめが!…そうだ、君だ!
      早くこのメールを読んで、
      わしのところに来い!
      もう1日、あるんだ!見つかったんだ!
      データベースが回復して、
      見つかったんだよ、ファイアの日が。
      ご先祖はちゃんと記録しておる。

    3. 匿名希望
      2017/07/20(木) 23:42:05

      データベース登録に2営業日かぁ。その日でキャンペーン終了って事で5K割引で買えないかも~だな。
      そもそも販売した製品のシリアルデータベースがちゃんと受け渡されてない所が日系メーカーなら有り得ないけど。でもメールで詳細直対応してくれるレスポンスの良さは海外メーカーっぽい。

    4. 匿名希望
      2017/07/20(木) 23:42:05

      「 個人情報のデータベースにはメールソフトのアドレス帳や従業員名簿等も含まれる」となると、LINEとかFBにスマホのアドレス帳渡すと、改正個人情報保護法に言う「本人の同意を得ずに個人情報を第三者提供」て奴に該当するん?

    記事に戻る

関連記事