photo credit: Kalexanderson via photopin cc
WordPressでメールフォームを設置したい場合の定番プラグインContact Form 7で、メール送信の際に使用できる特別なメールタグや、独自タグの作成方法をご紹介します。
※なお、動作確認時のバージョンは 3.3.3 です。
特別なメールタグ
公式のサポートサイトにも掲載されている情報ですが、特別なメールタグとして次のようなタグが予め用意されています。
[_remote_ip] このタグは送信者の IP アドレスで置換されます。
[_user_agent] このタグは送信者のユーザーエージェント情報で置換されます。
[_url] このタグはコンタクトフォームの URL で置換されます。
[_date] このタグは送信された日付で置換されます。
[_time] このタグは送信された時刻で置換されます。
[_post_id] このタグはコンタクトフォームを含んだ投稿の ID で置換されます。
[_post_name] このタグはコンタクトフォームを含んだ投稿の名前(スラッグ)で置換されます。
[_post_title] このタグはコンタクトフォームを含んだ投稿のタイトルで置換されます。
[_post_url] このタグはコンタクトフォームを含んだ投稿のパーマリンクで置換されます。
[_post_author] このタグはコンタクトフォームを含んだ投稿の作成者の名前で置換されます。
[_post_author_email] このタグはコンタクトフォームを含んだ投稿の作成者のメールアドレスで置換されます。
例えば、メールの送信日時を含めたければ、Contact Form 7メッセージ本文の設定に次のようにタグを入れれば良いわけです。
[text]
メール送信日時:[_date][_time]
[/text]
送信日付、時刻やユーザーエージェントなど結構使うケースがあるので、知っておくと便利だと思います。
独自タグの作成方法
特別なメールタグでも要求が不足する場合には、自分で独自タグを追加することもできます。
例えば、現在のログインユーザー名を設定できるタグを作成するとします。
function.phpに以下のコードを追加します。
[php]
/**
* contact form 7の独自タグ追加
*/
function ad_special_mail_tags($output, $name) {
// ログインユーザー名を取得するタグ
if ("_login_user" == $name) {
global $user_identity;
if (empty($user_identity)) {
$output = ‘ゲスト’; //ログインしていない場合
} else {
$output = $user_identity;
}
}
return $output;
}
add_filter(‘wpcf7_special_mail_tags’, ‘ad_special_mail_tags’, 10, 2);
[/php]
あとは、メッセージ本文の設定に次のようにタグを入れれば使用できます。
[text]
ログインユーザ:[_login_user]
[/text]
標準機能でも通常用途には十分ですが、独自タグが作れるようになるとまたContact Form 7の利用幅が広がりますね。