ご注意!

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

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

閉じる

メール通知にフィールドの説明を含める方法

メール通知にフィールドの説明を含めますか?デフォルトでは、{all_fields}には、説明を除き、フォームから入力されたすべてのフォームフィールドとラベルが含まれます。ただし、PHPスニペットを使用して、メール通知内に説明を簡単に追加できます。このチュートリアルでは、これを達成する方法の各ステップを説明します!

これらのスニペットは、プレーンテキストのメールテンプレートを選択している場合は機能しないことに注意してください。

フォームの作成

まず、フォームを作成する必要があります。このフォームにはいくつかのフィールドが含まれ、1つのフィールドにのみフィールドの説明が入力されます。

フォームを作成したら、メール通知に含めたいフィールドの説明を完成させてください。

メール通知に含めるフィールドの説明を追加する

フォームの作成についてサポートが必要な場合は、こちらのドキュメントをご覧ください

メールテンプレートの選択

このチュートリアルでは、プレーンテキストのメールテンプレートが選択されていないことを確認する必要があります。どちらの設定になっているかわからない場合や、この設定について不明な場合は、こちらのドキュメントを確認して、このオプションを変更する場所を確認してください

WPFormsの設定のメールタブでは、このチュートリアルはHTMLメールテンプレート設定を使用しています

通知にフィールドの説明を含める

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

/*
 * Include field descriptions inside email notifications.
 *
 * @link https://wpforms.com/developers/how-to-include-field-descriptions-inside-email-notifications/
 */

function wpf_dev_html_field_value( $field_val, $field, $form_data, $context ) {
   
    if ( $context !== 'email-html' ) {
        return $field_val;
    }
 
    if ( empty( $form_data[ 'fields' ][ $field[ 'id' ] ] ) ) {
        return $field_val;
    }
 
    $field_data = $form_data[ 'fields' ][ $field[ 'id' ] ];
 
    if ( empty( $field_data[ 'description' ] ) ) {
        return $field_val;
    }
 
    return $field_val . '<p>' . $field_data[ 'description' ] . '</p>';
 
}
add_filter( 'wpforms_html_field_value', 'wpf_dev_html_field_value', 20, 4 );

このスニペットを追加すると、フィールドの説明がすべてのメール通知に含まれるようになります。

これで、各通知にフィールドの説明が含まれるようになります

これで完了です!メール通知にフィールドの説明を含めることができました!メール通知から画像選択を非表示にすることもできますか?通知メールで画像選択を非表示にする方法の記事をご覧ください。

参照フィルター

wpforms_html_field_value

よくある質問

Q: 通知のフィールドの説明をスタイル設定できますか?

A:このスニペットを使用して、フィールドの説明にCSSスタイルを追加できます。

/*
 * Include field descriptions inside email notifications.
 *
 * @link https://wpforms.com/developers/how-to-include-field-descriptions-inside-email-notifications/
 */

function wpf_dev_html_field_value( $field_val, $field, $form_data, $context ) {
  
	if ( $context !== 'email-html' ) {
	    return $field_val;
	}

	if ( empty( $form_data[ 'fields' ][ $field[ 'id' ] ] ) ) {
	    return $field_val;
	}

	$field_data = $form_data[ 'fields' ][ $field[ 'id' ] ];

	if ( empty( $field_data[ 'description' ] ) ) {
	    return $field_val;
	}

	return $field_val . '<p style="padding:10px;background-color:#f6f6f6; color: #333333;"><i>' . $field_data[ 'description' ] . '</i></p>';

}
add_filter( 'wpforms_html_field_value', 'wpf_dev_html_field_value', 20, 4 );

これで、このフィルターを使用してフィールドの説明にスタイルを追加できます

Q: フォームIDで1つのフォームのみを対象にできますか?

A:もちろんです!1つのフォームのみでこれを行いたい場合は、このスニペットを使用してください。

/*
 * Include field descriptions inside email notifications.
 *
 * @link https://wpforms.com/developers/how-to-include-field-descriptions-inside-email-notifications/
 */

function wpf_dev_html_field_value( $field_val, $field, $form_data, $context ) {
	
	// Only process this on form ID 780
	if ( $form_data[ 'id' ] !== '780' ) {
		return $field_val;
    }
   
    if ( $context !== 'email-html' ) {
        return $field_val;
    }
 
    if ( empty( $form_data[ 'fields' ][ $field[ 'id' ] ] ) ) {
        return $field_val;
    }
 
    $field_data = $form_data[ 'fields' ][ $field[ 'id' ] ];
 
    if ( empty( $field_data[ 'description' ] ) ) {
        return $field_val;
    }
 
    return $field_val . '<p>' . $field_data[ 'description' ] . '</p>';
 
}
add_filter( 'wpforms_html_field_value', 'wpf_dev_html_field_value', 20, 4 );

スニペットの780を、ご自身のフォームIDに合わせて変更する必要があります。フォームIDの見つけ方がわからない場合は、こちらのチュートリアルをご覧ください

Q: エントリにフィールドの説明を追加するにはどうすればよいですか?

A:このスニペットをサイトに追加することで、フォームエントリを表示する際にフィールドの説明を含めることができます。

/*
 * Include field descriptions inside form entries.
 *
 * @link https://wpforms.com/developers/how-to-include-field-descriptions-inside-email-notifications/
 */

function wpf_dev_html_field_value( $field_val, $field, $form_data, $context ) {
   
    if ( $context !== 'entry-single' ) {
        return $field_val;
    }
 
    if ( empty( $form_data[ 'fields' ][ $field[ 'id' ] ] ) ) {
        return $field_val;
    }
 
    $field_data = $form_data[ 'fields' ][ $field[ 'id' ] ];

    if ( empty( $field_data[ 'description' ] ) ) {
        return $field_val;
    }
 
    return $field_val . '<br><br>' . $field_data[ 'description' ];
 
}
add_filter( 'wpforms_html_field_value', 'wpf_dev_html_field_value', 20, 4 );

entry-singleを使用することで、単一のエントリを表示する際にフィールドの説明を表示できるようにしています。フィールドの説明は、現在表示されているエントリにこのスニペットを使用して、すべてのエントリに永続的に保存されるわけではありません。フィールドの説明が表示されます。

Q: すべてではなく、特定のフィールドの説明のみを追加できますか?

A:もちろんです!この例では、名前フィールドの説明のみを含めます。

/*
 * Include field descriptions inside form entries.
 *
 * @link https://wpforms.com/developers/how-to-include-field-descriptions-inside-email-notifications/
 */

function wpf_dev_html_field_value( $field_val, $field, $form_data, $context ) {
	
    if ( $context !== 'email-html' ) {
        return $field_val;
    }

    if ( $field['type'] !== 'name' ) {
        return $field_val;
    }

    if ( empty( $form_data[ 'fields' ][$field[ 'id' ]] ) ) {
        return $field_val;
    }

    $field_data = $form_data[ 'fields' ][$field[ 'id' ]];

    if ( empty( $field_data[ 'description' ] ) ) {
        return $field_val;
    }

    return $field_val . '<br><br>' . $field_data[ 'description' ];
}
add_filter( 'wpforms_html_field_value', 'wpf_dev_html_field_value', 20, 4 );