概要
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}
を「デフォルト値」に置き換えます。