Contact Form 7で使える特別メールタグや独自タグの作成方法など

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 [日本語]

例えば、メールの送信日時を含めたければ、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])は標準で用意されたので、そちらを利用することをオススメします。(詳しくはプラグインのプラグインのマニュアルページを参照。)
もし、それ以外の独自タグを作成したい場合は上記の方法が利用できます。

この記事を書いた人

ko31

岩手県出身、群馬県在住のフリーランスWeb系エンジニアです。
Webシステム・アプリ、Webサービス、WordPress開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。
PHP / WordPress / 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親

>>もっと詳しいプロフィールはこちら

お仕事のご相談・お問い合わせ

当ブログの管理人は、Gosign(ゴーサイン)という屋号でフリーランス Web エンジニアとして活動しています。
ブログの掲載内容はもちろん、Web サイト制作や Web アプリケーション開発などのご相談・ご質問がありましたら、どうぞお気軽にお問い合わせください!

合わせて読みたい記事