概要
wpforms_smart_tag_process は、WPForms プラグインのフィルターフックであり、スマート タグが処理される際に利用されます。このフックを使用することによって、ユーザーが作成したカスタムスマートタグを定義したり、既存のスマートタグの動作を変更することが可能になります。このフィルタは、次のような場合に特に役立ちます。
- カスタムユーザープロフィール情報をフォームに表示する。
- 商品情報やサブスクリプションの動的データを取り扱う。
- 特定の条件に基づいて異なるメッセージやデータを表示する。
- 日付や時刻フォーマットを動的に変更する。
- 送信内容にユーザーのリファラー URL や IP アドレスを追加する。
- 他のプラグインからのデータを統合してフォームに表示する。
構文
add_filter('wpforms_smart_tag_process', 'your_function_name', 10, 3);
パラメータ
$smart_tag(文字列): 処理されるスマートタグ$form_data(配列): フォームのデータ$fields(配列): フォームのフィールドデータ
戻り値
- フィルタを適用した後のスマート タグの値
対応する WPForms のバージョン
WPForms のバージョン 1.0 以降で使用可能。
対応する WordPress のバージョン
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_smart_tag_process', 'custom_display_user_login', 10, 3);
function custom_display_user_login($smart_tag, $form_data, $fields) {
if ($smart_tag === '{user_login}') {
return isset($fields['user_id']) ? wp_get_current_user()->user_login : '';
}
return $smart_tag;
}
このコードは、 {user_login} スマートタグを利用して、ログイン中のユーザー名を表示します。
サンプル2: 現在の日付を特定のフォーマットで表示
add_filter('wpforms_smart_tag_process', 'custom_display_current_date', 10, 3);
function custom_display_current_date($smart_tag, $form_data, $fields) {
if ($smart_tag === '{current_date}') {
return date('Y年m月d日');
}
return $smart_tag;
}
このコードは、 {current_date} スマートタグを利用して、現在の日付を「YYYY年MM月DD日」の形式で表示します。
サンプル3: IP アドレスを表示
add_filter('wpforms_smart_tag_process', 'custom_display_user_ip', 10, 3);
function custom_display_user_ip($smart_tag, $form_data, $fields) {
if ($smart_tag === '{user_ip}') {
return $_SERVER['REMOTE_ADDR'];
}
return $smart_tag;
}
このコードは、 {user_ip} スマートタグを利用して、ユーザーのIPアドレスを表示します。
サンプル4: カスタムメッセージの表示
add_filter('wpforms_smart_tag_process', 'custom_display_message', 10, 3);
function custom_display_message($smart_tag, $form_data, $fields) {
if ($smart_tag === '{custom_message}') {
return '特別なメッセージ: ウェブサイトにようこそ!';
}
return $smart_tag;
}
このコードは、 {custom_message} スマートタグを利用して、特定のメッセージを表示します。
サンプル5: リファラー URL の表示
add_filter('wpforms_smart_tag_process', 'custom_display_referrer', 10, 3);
function custom_display_referrer($smart_tag, $form_data, $fields) {
if ($smart_tag === '{referrer}') {
return isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '直接訪問';
}
return $smart_tag;
}
このコードは、 {referrer} スマートタグを利用して、ユーザーが最後に訪れたページのURLを表示します。