チェックボックスの値を配列として格納する方法

はじめに

チェックボックスの値をエントリーやメール通知内に配列として保存することに興味がありますか?通常、チェックボックスフィールドは、選択された項目をエントリーや通知内で個別の行に表示します。

デフォルトでは、チェックボックスの選択は別の行に保存されます。

しかし、これから説明する方法を使えば、これらの値を首尾一貫した配列として保存することができます。このチュートリアルでは、チェックボックス選択の合理的な表示を実現するために必要な手順を説明します。それでは、データ表現を最適化しましょう!

フォームの作成

このプロセスを開始するために、まず新しいフォームを作り、必須フィールドを組み込むことから始めましょう。これらのフィールドの中に、少なくとも1つのチェックボックスフィールドが含まれていることを確認してください。この土台が、希望する機能を実装するための基礎となります。それでは、フォームの設定を進めていきましょう。

フォームを作成し、少なくとも1つのチェックボックスフィールドを含むフィールドを追加します。

フォームの作成にヘルプが必要な場合は、こちらの便利なガイドをご覧ください

スニペットの追加

スニペットを追加して、このプロセスを完了させましょう。あなたのサイトにスニペットを追加する方法と場所についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

/**
 * Display checkbox values in the email notification only as a one-liner.
 *
 * @link  https://wpforms.com/developers/how-to-store-checkbox-values-as-an-array/
 */
function wpf_inline_checkbox_values( $value, $field, $form_data, $context ) {

	// Check if there are any checkboxes in this submission
	if ( $field['type'] !== 'checkbox' ) {
		return $value;
	}

	// Return these values in a single line separated by a comma
	return str_replace( "\n", ', ', $value );
}
add_filter( 'wpforms_html_field_value', 'wpf_inline_checkbox_values', 10, 4 );

このスニペットは、WPFormsフォームから任意のチェックボックス値を受け取り、エントリーとEメール通知のためにカンマで区切られた1行として選択項目を表示します。

これで、ユーザーがチェックボックスの項目を選択すると、各チェックボックスごとにカンマで区切られた1行で保存され、電子メールで送信されるようになります。

これで、各チェックボックスが保存され、各チェックボックスとその選択項目がカンマで区切られた1行で通知メールに送信されます。

チェックボックスの値を配列として保存するのに必要なのはこれだけです!時間帯によってフォームを開いたり閉じたりしたいですか?チュートリアルの How to Schedule a Form Base on the Time of Day をご覧ください。

フィルタ参照:wpforms_html_field_value

よくあるご質問

Q: どうすればEメール通知だけにできますか?

A:この機能をメールテンプレートのみに使用したい場合は、まずWPFormsのメール設定がHTMLメールに設定されていることを確認してください。その方法についてはこちらのドキュメントをご覧ください

これらの設定がHTMLテンプレートに設定されていることを確認したら、このスニペットを使用して、メール通知のみにこの機能を有効にします。

/**
 * Display checkbox values in the email notification only as a one-liner.
 *
 * @link  https://wpforms.com/developers/how-to-store-checkbox-values-as-an-array/
 */
function wpf_inline_checkbox_values( $value, $field, $form_data, $context ) {

	// Check if there are any checkboxes in this submission and that the Email Template is HTML
	if ( $field['type'] !== 'checkbox' || $context !== 'email-html' ) {
		return $value;
	}

	// Return these values in a single line separated by a comma
	return str_replace( "\n", ', ', $value );
}
add_filter( 'wpforms_html_field_value', 'wpf_inline_checkbox_values', 10, 4 );