AI要約
チェックボックスフィールドの選択肢でスマートタグを処理しますか?デフォルトでは、チェックボックスフィールドの個々の選択肢内にスマートタグを配置しても処理されません。ただし、簡単なPHPコードスニペットを使用すると、これを簡単に許可できます。
このチュートリアルでは、チェックボックスフィールドの選択肢でスマートタグを処理する方法を説明します。
スマートタグは、フォーム内でデータを動的に取得して表示するための優れた方法です。WPFormsでは、この機能をさらに拡張するために使用できるカスタムスマートタグを作成することもできます。
フォームの作成
このチュートリアルでは、メンバーシップフォームにいくつかのフィールドを追加して、フォームに入力している人のフルネームまたは表示名を確定します。これはWordPressのプロフィールから取得され、また「このオファーについてどこで知りましたか?」というフォームフィールドもスマートタグから取得されます。
フォームの作成にヘルプが必要な場合は、こちらの役立つガイドをご覧ください。
チェックボックスフィールドの選択肢でスマートタグを使用する
スマートタグを使用できるため、最初の選択肢のラベルに{user_full_name}、2番目の選択肢のラベルに{user_display}を入力します。

また、3番目の選択肢を追加します。これを選択すると、プロフィールの記録が間違っている場合に訪問者が正しい名前を入力できるように、条件付きで単一行テキストフォームフィールドが表示されます。
次に、訪問者に「このオファーについてどこで知りましたか?」を完了するように求める別のチェックボックスフィールドを追加します。これには、訪問者が参照されたURLを取得しようとする{url_referer}スマートタグが含まれます。

コードスニペットの追加
チェックボックスフィールドの選択肢に含まれるスマートタグを処理するには、このコードスニペットをサイトにコピーする必要があります。
コードスニペットの追加にヘルプが必要な場合は、こちらのチュートリアルをご覧ください。
注意: このスニペットは、他のフォームフィールドを埋めるために、ユーザー入力値(例: {field_id="3"})を取得しません。
/**
* Using Smart Tags in Checkboxes.
*
* @link https://wpforms.com/developers/process-smart-tags-in-checkbox-labels/
*/
function wpf_dev_checkbox_choices_process_smarttags( $field, $deprecated, $form_data ) {
foreach ( $field[ 'choices' ] as $key => $choice ) {
if ( ! empty( $choice[ 'label' ] ) ) {
$field[ 'choices' ][ $key ][ 'label' ] = apply_filters( 'wpforms_process_smart_tags', $choice[ 'label' ], $form_data );
}
}
return $field;
}
add_filter( 'wpforms_checkbox_field_display', 'wpf_dev_checkbox_choices_process_smarttags', 10, 3 );
上記のコードは、チェックボックスの選択肢に、スマートタグのフィルターをapply_filters( ‘wpforms_process_smart_tags’, で処理するように指示します。これにより、チェックボックスフィールドのラベルとしてスマートタグを使用できます。

よくある質問
これらは、スマートタグをチェックボックスフィールドのラベルで利用可能にすることに関する、よくある質問への回答です。
Q: ドロップダウンおよび複数選択フィールドでも使用できますか?
A: もちろんです!このスニペットを使用して、ドロップダウンおよび複数選択フォームフィールドのフィールドラベル内のスマートタグを処理してください。
/**
* Using Smart Tags in Multiple Choice and Dropdown choices.
*
* @link https://wpforms.com/developers/process-smart-tags-in-checkbox-labels/
*/
function wpf_dev_select_radio_choices_process_smarttags( $field, $deprecated, $form_data ) {
foreach ( $field[ 'choices' ] as $key => $choice ) {
if ( ! empty( $choice[ 'label' ] ) ) {
$label = apply_filters( 'wpforms_process_smart_tags', $choice[ 'label' ], $form_data );
if ( ! empty( $label ) ) {
$field['choices'][ $key ][ 'label' ] = $label;
} else {
// Remove empty option.
unset( $field['choices'][ $key ] );
}
}
}
return $field;
}
add_filter( 'wpforms_radio_field_display', 'wpf_dev_select_radio_choices_process_smarttags', 10, 3 );
add_filter( 'wpforms_select_field_display', 'wpf_dev_select_radio_choices_process_smarttags', 10, 3 );
これで、チェックボックスフィールドのラベルでスマートタグを使用する方法がわかりました。
次に、HTML / コードフォームフィールドでもスマートタグを使用したいですか?HTMLフィールドでスマートタグを処理するチュートリアルをご覧ください。
関連
フィルター参照: