プラグインContact Form 7のwpcf7_special_mail_tagsフィルタの使用方法・解説

概要

wpcf7_special_mail_tags フィルタは、Contact Form 7プラグインで特別なメールタグの値を生成する際に使用されます。このフィルタを使用することで、ユーザーが送信したフォームデータに基づいてカスタムのメールタグを作成することができます。例えば、フォームの入力内容を加工して送信するメールに反映させたり、追加情報を動的に挿入したりすることができます。

このフィルタは、特別なメールタグの値を生成する際によく使われる機能として次の6つがあります:

  1. ユーザーのIPアドレスを含める
  2. フォーム送信日を指定する
  3. 特定のユーザー情報(例えば、ユーザー名など)を含める
  4. フォームの送信結果をカスタマイズする
  5. フォームのリファラを取得して利用する
  6. 自動応答メールにカスタムメッセージを追加する

構文

add_filter( 'wpcf7_special_mail_tags', 'your_custom_function', 10, 2 );

パラメータ

  • $value : 現在のメールタグの値
  • $type : メールタグのタイプ(タブ名)

戻り値

  • カスタムのメールタグの値(文字列)

使用可能なバージョン

  • Contact Form 7: 5.0以降
  • WordPress: 4.0以降

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプル1: IPアドレスを追加する

このサンプルコードは、送信者のIPアドレスをメール本文に追加するためのものです。

add_filter('wpcf7_special_mail_tags', 'add_sender_ip_address', 10, 2);
function add_sender_ip_address($value, $tag) {
    if ($tag == 'sender_ip') {
        return $_SERVER['REMOTE_ADDR'];
    }
    return $value;
}

引用元: https://contactform7.com/

サンプル2: 日付を挿入する

このサンプルでは、フォーム送信の日付をメールに追加します。

add_filter('wpcf7_special_mail_tags', 'add_submission_date', 10, 2);
function add_submission_date($value, $tag) {
    if ($tag == 'submission_date') {
        return date('Y-m-d H:i:s');
    }
    return $value;
}

引用元: https://contactform7.com/

サンプル3: ユーザー名を挿入する

このサンプルコードは、フォーム送信者のユーザー名をメール本文に追加するものです。

add_filter('wpcf7_special_mail_tags', 'add_username', 10, 2);
function add_username($value, $tag) {
    if ($tag == 'username') {
        return wp_get_current_user()->user_login;
    }
    return $value;
}

引用元: https://contactform7.com/

サンプル4: リファラを取得する

このコードは、フォーム送信時のリファラURLを取得してメールに追加します。

add_filter('wpcf7_special_mail_tags', 'add_referrer_url', 10, 2);
function add_referrer_url($value, $tag) {
    if ($tag == 'referrer') {
        return isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    }
    return $value;
}

引用元: https://contactform7.com/

サンプル5: カスタムメッセージを追加する

こちらのサンプルでは、特定の条件に基づいてカスタムメッセージをメールに挿入します。

add_filter('wpcf7_special_mail_tags', 'add_custom_message', 10, 2);
function add_custom_message($value, $tag) {
    if ($tag == 'custom_message') {
        return 'このメッセージはカスタムタグから送信されています。';
    }
    return $value;
}

引用元: https://contactform7.com/

この関数について質問する


上の計算式の答えを入力してください