ご注意!

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

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

閉じる

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

はじめに

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

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

しかし、これから説明するアプローチを使用すると、これらの値を一貫した配列として保存できます。このチュートリアルでは、チェックボックスの選択肢をこのように整理された形式で表示するために必要な手順を説明します。進んで、データ表示を最適化しましょう!

フォームの作成

プロセスを開始するために、新しいフォームを作成し、必要なフィールドを追加することから始めましょう。これらのフィールドの中に、少なくとも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のどのフォームのチェックボックスの値も取得し、エントリーおよびメール通知の両方で、選択肢をカンマで区切られた単一行として表示します。

これで、ユーザーがチェックボックスの項目を選択すると、各チェックボックスごとに単一行で保存およびメール送信され、各選択肢はカンマで区切られます。

これで、各チェックボックスは通知で単一行として保存およびメール送信され、各チェックボックスの選択肢はカンマで区切られます。実質的にチェックボックスの値を配列として保存します

これで、チェックボックスの値を配列として保存するために必要なすべてが完了しました! 時間帯に基づいてフォームを開閉することもできますか? 時間帯に基づいてフォームをスケジュールする方法に関するチュートリアルをご覧ください。

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

よくある質問

Q: メール通知のみでこれを実行するにはどうすればよいですか?

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