概要
wpforms_process_smart_tags は、WPForms プラグインで使用されるフィルターフックです。このフィルタは、フォームデータの処理時にスマートタグを適用するためのもので、ユーザーが送信したデータをカスタマイズすることができます。具体的には、次のような機能を実装する際に頻繁に使用されます。
- カスタム送信メッセージの生成
- 特定の条件に基づくデータのフィルタリング
- フォーム送信時に外部 API を呼び出す
- デフォルト値を動的に変更
- ユーザープロフィールデータの取得
- フォームのバリデーションプロセスをカスタマイズ
構文
add_filter('wpforms_process_smart_tags', 'your_custom_function', 10, 3);
パラメータ
$message(string) – スマートタグの解析を受けるテキスト。$form_data(array) – フォームからのデータの配列。$form(array) – WPForms フォーム設定の配列。
戻り値
- 返される値はカスタマイズされたメッセージの文字列。
使用可能なバージョン
- WPForms バージョン: 1.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
add_filter('wpforms_process_smart_tags', 'custom_smart_tags', 10, 3);
function custom_smart_tags($message, $form_data, $form) {
$user_id = get_current_user_id();
if ($user_id) {
$user_info = get_userdata($user_id);
$message = str_replace('{user_name}', $user_info->display_name, $message);
}
return $message;
}
説明: ユーザーがログインしている場合、スマートタグ {user_name} をユーザーの表示名に置き換え、メッセージに反映させます。
サンプルコード 2
add_filter('wpforms_process_smart_tags', 'dynamic_form_title', 10, 3);
function dynamic_form_title($message, $form_data, $form) {
if ($form['id'] == 123) { // フォームIDに基づいてチェック
$message = str_replace('{form_title}', '特別なフォーム', $message);
}
return $message;
}
説明: 特定のフォームIDに対して、スマートタグ {form_title} を「特別なフォーム」というタイトルに置き換えます。
サンプルコード 3
add_filter('wpforms_process_smart_tags', 'filter_conditionally', 10, 3);
function filter_conditionally($message, $form_data, $form) {
if (!empty($form_data['fields'][1]['value'])) { // フィールド1が空でない場合
$message = str_replace('{condition}', '条件が満たされています', $message);
}
return $message;
}
説明: フォームの最初のフィールドが空でない場合に、スマートタグ {condition} を置き換えます。
サンプルコード 4
add_filter('wpforms_process_smart_tags', 'external_api_call', 10, 3);
function external_api_call($message, $form_data, $form) {
$response = wp_remote_get('https://api.example.com/data');
if (is_array($response) && !is_wp_error($response)) {
$body = $response['body'];
$message = str_replace('{api_data}', $body, $message);
}
return $message;
}
説明: 外部 API からデータを取得し、スマートタグ {api_data} をそのデータに置き換えます。
サンプルコード 5
add_filter('wpforms_process_smart_tags', 'custom_default_value', 10, 3);
function custom_default_value($message, $form_data, $form) {
if ($form['id'] == 456) { // 特定のフォームIDに対して
$message = str_replace('{default_value}', 'デフォルト値', $message);
}
return $message;
}
説明: 特定のフォームに対して、スマートタグ {default_value} を「デフォルト値」に置き換えます。