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

Contact Form 7
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メッセージ本文の設定に次のようにタグを入れれば良いわけです。

メール送信日時:[_date][_time]

送信日付、時刻やユーザーエージェントなど結構使うケースがあるので、知っておくと便利だと思います。

独自タグの作成方法

特別なメールタグでも要求が不足する場合には、自分で独自タグを追加することもできます。

例えば、現在のログインユーザー名を設定できるタグを作成するとします。

function.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);

あとは、メッセージ本文の設定に次のようにタグを入れれば使用できます。

ログインユーザ:[_login_user]

標準機能でも通常用途には十分ですが、独自タグが作れるようになるとまたContact Form 7の利用幅が広がりますね。

PHPが好きなWeb系エンジニアです。フリーランスでWebサイト制作やWordPressのカスタマイズ、システム開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。
高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親
>>詳しいプロフィールはこちら

コメント

  1. […] などは確か使えなかったかと思います。 もちろん自分でcontactform7を改良して独自タグを作成すれば出来なくは無いですが、大本のファイルをいじるので。 WordPress自体やcontactform7のアッ […]

  2. […] 法はもちろんあります。 この辺りの記事を参考にしました。 Contact Form 7で使える特別メールタグや独自タグの作成方法など Contact Form 7の特別なメールタグをfunctions.phpで追加 [Wordpress]Conta […]