WordPressを使う人なら誰もが知ってる「Contact Form 7」はお問い合わせフォームを設置するのにかかせないプラグインだ。カスタマイズ性の良さとAjaxの動作がいい。
この「Contact Form 7」を使ったお問い合わせの際に、ユーザが使っている環境が知りたいとの要望があった。Webサービスに関する問い合わせでは、ユーザがどのOSでどんなブラウザが使っているかが手がかりになる。問い合わせをしてくるユーザに限ってそれを把握していないことが多いため、自動で送って欲しいということだ。
「Contact Form 7」では、IPアドレスを取得する [_remote_ip]というタグは用意されているものの、ユーザーエージェントは用意されていない。「Contact Form 7」に用意されている”wpcf7_special_mail_tags”というフィルタを使ってタグを追加することができる。追加するには、テーマのfunctions.phpにショートコードとして記述するとよい。
[sourcecode language=’php’]
add_filter(‘wpcf7_special_mail_tags’, ‘my_special_mail_tags’,10,2);
function my_special_mail_tags($output, $name)
{
if(!isset($re_agent)){ $re_agent = $_SERVER[‘HTTP_USER_AGENT’]; }
if(‘my_user_agent’ == $name){ $output = $re_agent; }
return $output;
}
[/sourcecode]
これで、「Contact Form 7」のメッセージ本文で[my_user_agent]といタグを使えるようになる。$nameにタグ名が入ってくるので、タグ名で分岐するようにすればこの中で複数を設定することができる。
WordPressフォーラムのContact Form 7 ホスト取得を参考にした。