KI-Zusammenfassung
Beschreibung
Der wpforms_process_filter wird nach der Validierung aller Felder und der Formatierung der Daten ausgelöst.
Parameter
- $fields
- (array) Bereinigte Feldwerte/Eigenschaften des Eintrags.
- $entry
- (array) Original $_POST Global.
- $form_data
- (array) Verarbeitete Formulareinstellungen/Daten, die zur späteren Verwendung vorbereitet sind.
Quelle
wpforms/includes/class-process.php
Weitere Informationen
Der Filter wird ganz am Ende ausgelöst, sobald die Feldvalidierung und die Formatierung der Daten abgeschlossen sind.
Beispiele
Denken Sie daran, Ihre Formular-ID von 817 auf die Zielformular-ID zu ändern.
Dieses Beispiel prüft, ob ein Bewertungsfeld in diesem speziellen Formular vorhanden ist, und wenn der Benutzer dieses Feld nicht ausfüllt, wird die Bewertung standardmäßig auf 0 gesetzt.
/**
* 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 );
Ein weiteres Beispiel könnte sein, wenn das Show Values-Tutorial implementiert wurde, um den value anstelle des Labels zu speichern.
/**
* 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 );