説明
について wpforms_process_filter
フィールドのバリデーションとデータのフォーマットがすべて完了した後に発生します。
パラメータ
- フィールド
- (配列) サニタイズされたエントリーフィールドの値/プロパティ。
- エントリー
- (配列) オリジナルの $_POST グローバル。
- フォームデータ
- (配列) 処理済みのフォーム設定/データ。
ソース
wpforms/includes/class-process.php
詳細情報
このフィルターは、フィールドのバリデーションとデータのフォーマットが終わると、一番最後に起動する。
例
フォームIDを817からターゲットとするフォームIDに変更することを忘れないでください。
この例では、このフォームに「評価」フィールドがあるかどうかを調べ、ユーザーがこのフィールドに入力しなかった場合、デフォルトで評価を0にします。
/** * Fires after all field validation and formatting data. * * @link https://wpforms.com/developers/wpforms_process_filter/ * * @param array $fields Sanitized entry field values/properties. * @param array $entry Original $_POST global. * @param array $form_data Form data and settings. * * @return array */ function wpf_dev_process_filter( $fields, $entry, $form_data ) { $form_id = 817; // Change form ID // Bail early if form ID does not match if ( $form_data[ 'id' ] != $form_id ) { return $fields; } foreach ( $fields as $field ) { // If field type is rating and it is empty, assign a value of 0 if ( $field[ 'type' ] == 'rating' && empty( $field[ 'value' ] ) ) { $fields[$field[ 'id' ]][ 'value' ] = 0; } } return $fields; } add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter', 10, 3 );
別の例としては バリューの表示 チュートリアルは value
ラベルの代わりに。
/** * Save choices `values` instead of `labels` for the fields with `Show values` option enabled. * * @link https://wpforms.com/developers/wpforms_process_filter/ * * @param array $fields Sanitized entry field. values/properties. * @param array $entry Original $_POST global. * @param array $form_data Form data and settings. */ function wpf_dev_process_filter_choices_values( $fields, $entry, $form_data ) { 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 );