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

【忘却されたイメージ】 #国語 #付与 #雇用 【連想可能なイメージ】 #データベース #技能 #メール
インターネット【Internet】 個々のコンピューターネットワークを相互に結んで、世界的規模で電子メールやデータベースなどのサービスを行えるようにした、ネットワークの集合体。
アクセスクエリて業務を楽に活動を再開してる。大したもんじゃないけど自分がこんなソフト欲しいと思ったものを作成。とりあえず定型メール作成ツールを作った。一定のキーを利用してデータベースから宛先を引っ張るのでミスを軽減。手作業を自動化。人は確認するだけでいい。作業時間8割くらい削減。
追放選挙の発送メール届いてる〜楽しみ〜1499だっけ?ゲームのデータベース確認しとくかな〜?
日本はいい加減国民全員の情報をデータベースで一元管理して、そこに選別アルゴリズムでDQN、ガイジ、糞野郎を抽出して、そいつらにメールを送って一箇所に集めて、そこにミサイルを集めるべき。
ただ、現在メール等を介してデータを送受信するのは、一時的にインターネットを介するのでアウト。2重の意味で。大学の機密データベースというくくりであって、情報漏洩と大差ないわけだから。 大学のインフラや蓄積があるので、大学のランクが医局のランク(論文の質)を決めるんだな。

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/09/14(木) 06:12:14

      ただ、現在メール等を介してデータを送受信するのは、一時的にインターネットを介するのでアウト。2重の意味で。大学の機密データベースというくくりであって、情報漏洩と大差ないわけだから。
      大学のインフラや蓄積があるので、大学のランクが医局のランク(論文の質)を決めるんだな。

    記事に戻る

関連記事