ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

フィールドラベルでスマートタグを処理する方法

はじめに

フォームのフィールドラベルでスマートタグを処理しますか?簡単なPHPスニペットを使用すると、これを簡単に実現できます。このチュートリアルでは、フォームフィールドラベルでスマートタグを処理する方法を説明します。

スマートタグの使用は、フォーム内で特定のデータを動的に取得して表示するための非常に便利なツールです。

デフォルトでは、スマートタグはフォームのフィールドラベル内に配置されていても処理されません。

ただし、たとえば、ログインユーザー名、ページのURLを表示したい場合や、カスタムスマートタグを使用して他の詳細を表示したい場合など、この機能は役立ちます。

このチュートリアルの目的のために、ログインユーザーのみが表示できるフォームを作成します。そのため、段落フォームフィールドのフィールドラベル内にユーザーのファーストネームを使用して、よりパーソナルにしたいと思います。

スニペットの追加

まず、スニペットをサイトに追加します。スニペットをサイトに追加する方法についてサポートが必要な場合は、このチュートリアルをご覧ください

以下に2つの方法を示します。1つは特定のフォームIDを対象とする方法、もう1つはすべてのフォームに適用される方法です。使用したいスニペットを選択してください。

特定のフォームIDを対象とする

このスニペットでは、フォームID365のみを対象としています。フォームIDの見つけ方がわからない場合は、このチュートリアルを確認してください

/**
 * Run Smart Tags on all field labels.
 *
 * @link   https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/
 */
  
function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) {
    
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
    if ( absint( $form_data[ 'id' ] ) !== 365 ) {
        return $field;
    }
	
    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    
    return $field;

}

add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 );

すべてのWPFormsに使用する

以下に示すコードは、すべてのWPFormsでこれを有効にします。

/**
 * Run Smart Tags on field labels in WPForms.
 *
 * @link   https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/
 */
 
function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) {

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    
    return $field;

}

add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 );

フォームの作成

次に、フォームを作成してフィールドを追加します。最初に追加するフォームフィールドは段落テキストフォームフィールドです。ユーザーのファーストネームを取得するために、新しいスマートタグをフィールドラベル内で使用します。そのため、このフィールドのラベルをあなたのことについて少し教えてください {user_first_name}に変更します。

スニペットを追加すると、フィールドラベル内でスマートタグを使用できるようになります

フォームの作成にヘルプが必要な場合は、このドキュメントを確認してください

フォームが読み込まれると、新しいスマートタグから取得された名前が表示されます。

スマートタグがフィールドラベル内に表示されるようになりました

メール通知でのスマートタグの使用

通知でもスマートタグを使用できます。

これを行うには、フォームビルダー内の設定に移動し、通知を選択します。

メール通知メッセージを設定する際に、スマートタグを表示を選択して、メッセージに含めたいスマートタグを含めることができます。

メール通知内でスマートタグを使用して、よりパーソナルな通知を提供することもできます

他のフォームフィールドラベルでのスマートタグの使用

以下に、これらの特定のフィールドのそれぞれでスマートタグをラベルで処理できる、さまざまなフォームフィールドに必要なスニペットを示します。

上記で述べたように、これらのスニペットは単一のフォームIDに固有です。すべてのフォームで利用できるようにするには、スニペット内のフォームIDを参照するブロックを削除するだけです。

/**
 * Run Smart Tags on field labels in WPForms.
 *
 * @link   https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/
 */

// Run smart tags on text field label.
function wpf_dev_text_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 )
    return $field;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_text_field_display', 'wpf_dev_text_field_display', 10, 3 );


// Run smart tags on textarea field label.
function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 );


// Run smart tags on checkbox field label.
function wpf_dev_checkbox_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_checkbox_field_display', 'wpf_dev_checkbox_field_display', 10, 3 );


// Run smart tags on email field label.
function wpf_dev_email_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_email_field_display', 'wpf_dev_email_field_display', 10, 3 );


// Run smart tags on select field label.
function wpf_dev_select_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_select_field_display', 'wpf_dev_select_field_display', 10, 3 );


// Run smart tags on radio field label.
function wpf_dev_radio_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_radio_field_display', 'wpf_dev_radio_field_display', 10, 3 );


// Run smart tags on number field label.
function wpf_dev_number_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_number_field_display', 'wpf_dev_number_field_display', 10, 3 );


// Run smart tags on name field label.
function wpf_dev_name_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_name_field_display', 'wpf_dev_name_field_display', 10, 3 );


// Run smart tags on phone field label.
function wpf_dev_phone_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_phone_field_display', 'wpf_dev_phone_field_display', 10, 3 );


// Run smart tags on address field label.
function wpf_dev_address_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_address_field_display', 'wpf_dev_address_field_display', 10, 3 );


// Run smart tags on URL field label.
function wpf_dev_url_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_url_field_display', 'wpf_dev_url_field_display', 10, 3 );


// Run smart tags on password field label.
function wpf_dev_password_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_password_field_display', 'wpf_dev_password_field_display', 10, 3 );


// Run smart tags on payment checkbox field label.
function wpf_dev_payment_checkbox_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_payment_checkbox_field_display', 'wpf_dev_payment_checkbox_field_display', 10, 3 );


// Run smart tags on payment multiple select field label.
function wpf_dev_payment_multiple_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_payment_multiple_field_display', 'wpf_dev_payment_multiple_field_display', 10, 3 );


// Run smart tags on single payment field label.
function wpf_dev_payment_single_field_display( $field, $field_atts, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #365.
	if( $form_data[ 'id' ] != 365 ) 
    return;

    $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data );
    return $field;

}

add_filter( 'wpforms_payment_single_field_display', 'wpf_dev_payment_single_field_display', 10, 3 );


この機能は、ユーザー入力データ(例:{field_id="3"})をサポートしません。

これで完了です!フィールドラベル内でスマートタグを処理できるようになりました。フィールドの説明でスマートタグを処理しますか?「フィールドの説明でスマートタグを処理する方法」をご覧ください。

フィルターリファレンス:wpforms_textarea_field_display