MW WP Form で adminメールにIPを付加

グーグル先生で探したけど、みんな肝心なところを教えてくれない。

わたしは管理画面の方のメール本文と送信者情報をくっつけるやり方がわからなかったので、functions.phpにメール本文を設定しました。(もしかしたらそういう変数がありましたかね…) 
とか・・・
おい、それじゃフォームごとに関数必要でめんどくさすぎて意味ねーだろ。


そんなに難しいことなのかと思って調べたら、あっさりできたりしたんだが・・・


ちなみに私はWP歴1ヶ月未満、PHPなんてズブのど素人だぞ。
上記サイトの管理人はWEB業界の人みたいだけど、その業界の人はその道のプロだろ?

そのプロが分からないことを素人が簡単にできちゃうてなんかオカシクナイカ?

(本当のプロだったら)そんなことは世の中には無いと思ってるんだな私は。
だってプロってそういうものでしょ?
無知な人でもわかりやすく簡単に理解できるように教えてくれるんでしょ?
(え?違うの?)


だからね、何が言いたいのかというと、
このような人たちは、簡単なことなのに知ってることを教えてくれないってことなのかと思ってしまうだよね。
私は性格が良くないから。


まあ、あんまりほざいてると「人に聞かないで自分で何とかしろ(怒)」となる人がいるので、この辺で口をチャックすることにするよ。



MW WP Form で アドミンメールにブラウザ情報・IP・ホスト名を付加するコード

/**
 * mwform_admin_mail add ip
 */
add_filter( 'mwform_admin_mail_mw-wp-form-***', 'my_admin_mail' );
function my_admin_mail( $Mail ) {
$Browser = $_SERVER["HTTP_USER_AGENT"];
$Ip = $_SERVER["REMOTE_ADDR"];
$Host = gethostbyaddr($Ip);
$Mail->body .= "\n\n--------------------\n【送信者情報】\n・ブラウザー:" .$Browser. "\n・送信元IPアドレス:" .$Ip. "\n・送信元ホスト名:" .$Host;
return $Mail;
}

これ↑をfunctions.phpに貼ればOK。
mw-wp-form-*** の部分はMW WP Formの画面の【フォーム識別子】の
「このショートコードをコピー&ペーストしてください。
各フックで使用する修飾子はmw-wp-form-***
の下線部に書き換えて下さい。

あ、私は素人だから自己責任でやって下さいね。(まあ、問題はおこらないけど)


$_SERVER["HTTP_USER_AGENT"] → 現在のリクエストに User-Agent: ヘッダが もしあればその内容。
$_SERVER["REMOTE_ADDR"] → 現在ページをみているユーザの IP アドレス。
gethostbyaddr($_SERVER["REMOTE_ADDR"] ) →  gethostbyaddrはDNSに問い合わせてIPアドレスに対応するホスト名を調べる、逆引きを行ってくれる関数。
あとは$Mail->body .=でメール本文に情報をくっつけるだけの簡単なお仕事。


えーと、たったこれだけのことがだよ、
業界で仕事してWPのブログまでやっている人が、やりたいことができていないコードで20行以上も書いてあるんだから(しかも余計なエスケープまであったし)。

まあ、多いんだよな。
知ってることを出し惜しみする人って。

コメント

  1. 作者でさえシカトするので分からない者には困ります。
    大変参考になり助かりました。
    ありがとうございます。

    返信削除

コメントを投稿

このブログの人気の投稿

eclipse 改行後のインデントを無効にする

サービスエラー:Spreadsheets(service error:Spreadsheets)の原因

Jquery datetimepicker 日本語にならない原因