プラグインWPFormsのwpforms_smart_tagsフィルタの使用方法・解説

概要

wpforms_smart_tags フィルタは、WPFormsプラグインにおけるスマートタグの処理をカスタマイズする際に使用されるフックです。このフィルタを使うことで、ユーザーがフォーム内で使用する場所に応じたカスタムタグや動的コンテンツを追加することができます。具体的には以下のような機能を実装する際によく使われます。

  1. フォーム入力値の表示
  2. 管理者のメール通知にカスタム情報を追加
  3. ユーザーのプロフィール情報を取得
  4. フォームの送信完了メッセージの変更
  5. データベースからの動的データのインジェクション
  6. フォーム送信条件に基づくカスタム処理の実施

構文

add_filter('wpforms_smart_tags', 'custom_wpforms_smart_tags', 10, 3);

パラメータ

  • $smart_tags : 現在のスマートタグの配列
  • $form_data : フォームのデータ配列
  • $form_id : フォームのID

戻り値

  • フィルタされたスマートタグの配列

使用可能なバージョン

  • WPForms: 1.5以降
  • WordPress: 5.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: フォームデータのカスタム表示

このサンプルコードは、フォームからの入力値をカスタムタグで表示します。

add_filter('wpforms_smart_tags', function($smart_tags, $form_data, $form_id) {
    if ($form_id == 123) { // フォームIDを指定
        $smart_tags['custom_name'] = 'Custom Name: ' . $form_data['fields'][1]['value']; // 対応するフィールドを取得
    }
    return $smart_tags;
});

サンプル2: メール通知にカスタム情報を追加

このサンプルコードは、フォームのメール通知にカスタム情報を追加します。

add_filter('wpforms_smart_tags', function($smart_tags, $form_data, $form_id) {
    if ($form_id == 456) { // フォームIDを指定
        $smart_tags['custom_info'] = 'Additional Info: ' . get_option('custom_option'); // オプション値を取得
    }
    return $smart_tags;
});

サンプル3: ユーザーのプロフィール情報を表示

このコードは、ログイン中のユーザーのプロフィール情報を表示するためのカスタムタグを追加します。

add_filter('wpforms_smart_tags', function($smart_tags, $form_data, $form_id) {
    if (is_user_logged_in()) {
        $current_user = wp_get_current_user();
        $smart_tags['user_email'] = $current_user->user_email; // ユーザーのメールアドレスを取得
    }
    return $smart_tags;
});

サンプル4: スマートタグで動的データを注入

このサンプルコードでは、特定のデータベースからのデータをスマートタグで表示します。

add_filter('wpforms_smart_tags', function($smart_tags, $form_data, $form_id) {
    global $wpdb;
    $result = $wpdb->get_var("SELECT name FROM wp_custom_table WHERE id = 1"); // データを取得
    $smart_tags['dynamic_name'] = 'Dynamic Name: ' . $result; // タグに追加
    return $smart_tags;
});

サンプル5: フォーム送信後のメッセージを変更

このコードは、フォーム送信後のメッセージをスマートタグでカスタマイズします。

add_filter('wpforms_smart_tags', function($smart_tags, $form_data, $form_id) {
    if ($form_data['form_title'] == 'Contact Us') {
        $smart_tags['thank_you'] = 'Thank you for your submission, ' . $form_data['fields'][0]['value'] . '!'; // 名前フィールドを取得
    }
    return $smart_tags;
});

引用元

  1. https://wpforms.com/developers/wpforms_smart_tags/
  2. https://wpforms.com/how-to-use-smart-tags-in-wpforms/
  3. https://wpforms.com/docs/how-to-add-smart-tags-to-your-emails/
  4. https://developer.wordpress.org/reference/hooks/wpforms_smart_tags/
  5. https://wpforms.com/docs/customizing-your-form-notifications-with-smart-tags/

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


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