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

メール通知内にフィールドの説明を含めたいですか? デフォルトでは、{all_fields}はフォームから入力されたすべてのフォームフィールドとラベルを含みますが、説明文は例外です。 しかし、小さな PHP スニペットを使うことで、簡単にメール通知の中に説明を含めることができます。 このチュートリアルでは、これを実現するための各ステップを説明します!

プレーンテキストメールテンプレートを選択した場合、これらのスニペットは機能しません。

フォームの作成

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

フォームを作成したら、メール通知に含めるフィールドの説明を記入するだけです。

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

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

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

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

メールタブの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 );

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

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

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

リファレンス・フィルター

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 );