Description
Le wpforms_process_filter
se déclenche après la validation de tous les champs et le formatage des données.
Paramètres
- $fields
- (tableau) Valeurs/propriétés des champs d'entrée assainis.
- Entrée
- (array) Original $_POST global.
- $form_data
- (tableau) Paramètres/données de formulaire traités, préparés pour être utilisés ultérieurement.
Source
wpforms/includes/class-process.php
Plus d'informations
Le filtre se déclenche à la toute fin, une fois la validation du champ et le formatage des données effectués.
Exemples
N'oubliez pas de remplacer l'ID du formulaire 817 par l'ID du formulaire que vous visez.
Cet exemple vérifiera si le formulaire en question comporte un champ "évaluation" et si l'utilisateur ne remplit pas ce champ, l'évaluation sera fixée par défaut à 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 );
Un autre exemple pourrait être celui où le Afficher les valeurs a été mis en œuvre pour sauvegarder le value
au lieu de l'étiquette.
/** * 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 );