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

概要

wpcf7_collect_mail_tags フィルタは、Contact Form 7 プラグインを用いて独自のメールタグを設定する際に使用されます。このフィルタを利用することで、メールの送信内容にカスタムタグを追加し、より柔軟なメールフォーマットを作成できます。特に以下のような機能を実装する際によく使われます。

  1. カスタムフィールドの値をメールに含める
  2. 条件に基づいたメール内容の変更
  3. 特定のユーザー情報をメールに追加
  4. サイトの設定情報をメールに含める
  5. 他のプラグインからデータを取得してメールに反映
  6. 特別なフォーマットでメールを送信する

構文

apply_filters( 'wpcf7_collect_mail_tags', $mail_tags, $form )

パラメータ

  • $mail_tags: メールタグの配列
  • $form: 現在のフォームオブジェクト

戻り値

  • 上書きされたメールタグの配列

使用可能なプラグインバージョン

  • Contact Form 7: 5.0以上

使用可能なワードプレスのバージョン

  • WordPress: 4.0以上

サンプルコード

サンプルコード 1

add_filter( 'wpcf7_collect_mail_tags', 'custom_mail_tag_example', 10, 2 );

function custom_mail_tag_example( $mail_tags, $form ) {
    $mail_tags['custom_tag'] = 'これはカスタムタグの値です';
    return $mail_tags;
}

このサンプルコードは、custom_tag という独自のメールタグを作成し、固定の値を設定しています。

サンプルコード 2

add_filter( 'wpcf7_collect_mail_tags', 'dynamic_mail_tag_example', 10, 2 );

function dynamic_mail_tag_example( $mail_tags, $form ) {
    $current_user = wp_get_current_user();
    if ( $current_user->exists() ) {
        $mail_tags['user_email'] = $current_user->user_email;
    }
    return $mail_tags;
}

このサンプルコードでは、現在ログインしているユーザーのメールアドレスを独自のメールタグ user_email に設定しています。

サンプルコード 3

add_filter( 'wpcf7_collect_mail_tags', 'conditional_mail_tag_example', 10, 2 );

function conditional_mail_tag_example( $mail_tags, $form ) {
    if ( isset( $_POST['special_field'] ) && $_POST['special_field'] === 'yes' ) {
        $mail_tags['special_info'] = '特別な情報が必要です';
    }
    return $mail_tags;
}

このサンプルコードは、フォームの特定のフィールドに基づいて独自のメールタグ special_info を追加します。

サンプルコード 4

add_filter( 'wpcf7_collect_mail_tags', 'post_data_mail_tag_example', 10, 2 );

function post_data_mail_tag_example( $mail_tags, $form ) {
    $mail_tags['post_title'] = get_the_title( get_the_ID() );
    return $mail_tags;
}

このサンプルコードは、現在の投稿のタイトルを独自のメールタグ post_title に追加します。

サンプルコード 5

add_filter( 'wpcf7_collect_mail_tags', 'site_info_mail_tag_example', 10, 2 );

function site_info_mail_tag_example( $mail_tags, $form ) {
    $mail_tags['site_name'] = get_bloginfo( 'name' );
    return $mail_tags;
}

このサンプルコードは、サイトの名称を独自のメールタグ site_name に格納します。

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

アクション 使用可能性
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

この表は、wpcf7_collect_mail_tags フィルタがどのアクションで使用されているかの可用性を示しています。

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


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