WordPressでメールフォームを設置したい場合の定番プラグインContact Form 7で、メール送信の際に使用できる特別なメールタグや、独自タグの作成方法をご紹介します。
※なお、動作確認時のバージョンは 3.3.3 です。
特別なメールタグ
公式のサポートサイトにも掲載されている情報ですが、特別なメールタグとして次のようなタグが予め用意されています。
[_remote_ip] このタグは送信者の IP アドレスで置換されます。
特別なメールタグ | Contact Form 7 [日本語]
[_user_agent] このタグは送信者のユーザーエージェント情報で置換されます。
[_url] このタグはコンタクトフォームの URL で置換されます。
[_date] このタグは送信された日付で置換されます。
[_time] このタグは送信された時刻で置換されます。
[_post_id] このタグはコンタクトフォームを含んだ投稿の ID で置換されます。
[_post_name] このタグはコンタクトフォームを含んだ投稿の名前(スラッグ)で置換されます。
[_post_title] このタグはコンタクトフォームを含んだ投稿のタイトルで置換されます。
[_post_url] このタグはコンタクトフォームを含んだ投稿のパーマリンクで置換されます。
[_post_author] このタグはコンタクトフォームを含んだ投稿の作成者の名前で置換されます。
[_post_author_email] このタグはコンタクトフォームを含んだ投稿の作成者のメールアドレスで置換されます。
例えば、メールの送信日時を含めたければ、Contact Form 7メッセージ本文の設定に次のようにタグを入れれば良いわけです。
メール送信日時:[_date][_time]
送信日付、時刻やユーザーエージェントなど結構使うケースがあるので、知っておくと便利だと思います。
独自タグの作成方法
特別なメールタグでも対応できない場合には、自分で独自タグを追加することもできます。
例えば、現在のログインユーザー名を設定できるタグを作成するとします。
function.phpに以下のコードを追加します。
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 );
あとは、メッセージ本文の設定に次のようにタグを入れれば使用できます。
ログインユーザ:[_login_user]
標準機能でも通常用途には十分ですが、独自タグが作れるようになるとまたContact Form 7の利用幅が広がりますね。
この記事の公開後、ログインユーザーを取得するタグ([_user_login]
)は標準で用意されたので、そちらを利用することをオススメします。(詳しくはプラグインのプラグインのマニュアルページを参照。)
もし、それ以外の独自タグを作成したい場合は上記の方法が利用できます。