概要
wpforms_smart_tags
フィルタは、WPFormsプラグインにおけるスマートタグの処理をカスタマイズする際に使用されるフックです。このフィルタを使うことで、ユーザーがフォーム内で使用する場所に応じたカスタムタグや動的コンテンツを追加することができます。具体的には以下のような機能を実装する際によく使われます。
- フォーム入力値の表示
- 管理者のメール通知にカスタム情報を追加
- ユーザーのプロフィール情報を取得
- フォームの送信完了メッセージの変更
- データベースからの動的データのインジェクション
- フォーム送信条件に基づくカスタム処理の実施
構文
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;
});
引用元
- https://wpforms.com/developers/wpforms_smart_tags/
- https://wpforms.com/how-to-use-smart-tags-in-wpforms/
- https://wpforms.com/docs/how-to-add-smart-tags-to-your-emails/
- https://developer.wordpress.org/reference/hooks/wpforms_smart_tags/
- https://wpforms.com/docs/customizing-your-form-notifications-with-smart-tags/