ご注意!

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

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

閉じる

WPFormsの登録情報にフィールド値を保存する方法

WPFormsの登録情報にドロップダウンチェックボックス複数選択フィールドのフィールド値を保存しますか? このチュートリアルでは、フィールドラベルの代わりにフィールド値を使用し、登録情報に保存する方法をPHPを使用してご紹介します。

登録情報に値を保存する

このチュートリアルでは、フォームを作成する前に実際にスニペットをサイトに追加します。これは、スニペットの一部がドロップダウンチェックボックス複数選択フィールドの値の表示オプションを有効にするためです。

スニペットの追加方法と場所については、こちらのチュートリアルをご覧ください

2つの別々のスニペットを追加しました。最初 のスニペットは、ドロップダウンチェックボックス複数選択フィールドのフィールド値を追加できるようにするこちらのチュートリアルに従っています。

2番目のスニペットは、フォーム送信を取得し、処理中にフィールドラベルの代わりにフィールド値を取得して登録情報に保存します。

重要: ドロップダウンフィールドに依存する通知の条件付きロジックを使用している場合、このスニペットによりそれらのルールが機能しなくなる可能性があります。

これは、通知条件が選択肢のラベルを比較するのに対し、このスニペットは代わりに選択肢の値を保存して使用するためです。ラベルと値は異なるため、一致せず、条件はトリガーされません。

フォームの作成

次に、フォームを作成し、少なくとも1つのドロップダウンチェックボックス、または複数選択フィールドを含むフィールドを追加します。

フォームの作成にヘルプが必要な場合は、詳細なドキュメントをご覧ください

フォームを作成し、フィールドを追加することから始めます

このドキュメントの目的のために、連絡先設定用のドロップダウンフィールドを追加しました。フィールド値を追加するには、フィールドを選択して高度な設定タブをクリックします。

値の表示をオンにするにはボタンをクリックします

値の表示をオンにするボタンをクリックし、次に一般設定タブに戻ってフィールド値を追加します。

フィールドに追加したい値を追加します

フォームを保存すると、フィールドラベルではなく、フィールド値がフォームの登録情報に保存されていることがわかります。

このスニペットを使用して、エントリにフィールド値を保存できます

Zapierアドオンを使用してフィールド値を送信したいですか? Zapierを使用してフィールド値をExcelに送信する方法のチュートリアルをご覧ください。

参照フィルター

wpforms_process_filter

よくある質問

Q: 単一のフォームのみを対象にするにはどうすればよいですか?

A: 1つのフォームのみを対象にするには、代わりにこのスニペットを使用してください。584を自分のフォームIDに合わせて更新する必要があります。フォームIDを見つけるには、このチュートリアルで確認してください

/**
 * Show values in Dropdown, checkboxes, and Multiple Choice.
 *
 * @link https://wpforms.com/developers/add-field-values-for-dropdown-checkboxes-and-multiple-choice-fields/
 */
   
add_action( 'wpforms_fields_show_options_setting', '__return_true' );

/**
 * Save choices 'values' instead of 'labels' for the fields with 'Show values' option enabled.
 *
 * @link https://wpforms.com/developers/how-to-store-field-values-in-the-wpforms-entry/
 */
function wpf_dev_process_filter_choices_values( $fields, $entry, $form_data ) {
	
	// Optional, you can limit to specific forms. Below, we restrict output to
    // form #584.
    if ( absint( $form_data[ 'id' ] ) !== 584 ) {
        return $fields;
    }
 
    if ( ! is_array( $fields ) ) {
        return $fields;
    }
 
    foreach ( $fields as $field_id => $field ) {
        if (
            isset( $field[ 'type' ] ) &&
            in_array( $field[ 'type' ], [ 'checkbox', 'radio', 'select' ], true ) &&
            ! empty( $form_data[ 'fields' ][ $field_id ][ 'show_values' ] )
        ) {
            $value_raw = ! empty( $field[ 'value_raw' ] ) ? $field[ 'value_raw' ] : '';
            $field[ 'value_raw' ] = $field[ 'value' ];
            $field[ 'value' ] = $value_raw;
            $fields[ $field_id ] = $field;
        }
    }
 
    return $fields;
};
add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter_choices_values', 10, 3 );