KI-Zusammenfassung
Beschreibung
Die Aktion wpforms_process_validate_payment-single wird für jedes Einzelposten-Zahlungsfeld ausgelöst, während WPForms ein übermitteltes Formular validiert, bevor ein Feldwert formatiert und der Eintrag gespeichert wird.
| Parameter | typ | beschreibung |
|---|---|---|
$field_id | string|int | Feld-ID als numerischer String. |
$field_submit | mixed | Übermittelter Feldwert (Rohdaten). Für dieses Feld ist es der Betragsstring aus der Anfrage oder ein leerer String, wenn nichts für das Feld gepostet wurde. |
$form_data | Array | Formulardaten und Einstellungen. |
Weitere Informationen
WPForms_Process::process() durchläuft jedes Feld in $form_data['fields'] und ruft do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $this->form_data ) für jedes auf. Dieser Hook ist die Instanz für den Feldtyp payment-single. Er wird bei jeder Übermittlung eines Formulars ausgelöst, das das Feld enthält, unabhängig davon, ob der Besucher es ausgefüllt hat oder nicht. Die Datei befindet sich in includes/, daher wird sie in Lite und Pro ausgelöst.
Dieser Hook ist eine Instanz von do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data ). Andere Instanzen sind wpforms_process_validate_payment-checkbox für das Feld Checkbox-Elemente und wpforms_process_validate_email für das Feld E-Mail.
Die Feldklasse registriert ihre eigene validate() auf diesem Hook mit Priorität 10 und drei Argumenten. Sie fügt den Fehler für erforderliche Felder hinzu. Dann, es sei denn, der Filter wpforms_forms_fields_payment_single_field_validate_amount gibt false zurück, prüft er den Betrag: ein Festpreisartikel muss einen Betrag posten, der dem konfigurierten Preis entspricht, und ein vom Benutzer definierter Artikel kann keinen negativen Betrag oder einen Betrag unter der Einstellung Mindestpreis des Feldes posten.
$field_submit ist der rohe gepostete String. Führen Sie ihn durch wpforms_sanitize_amount(), bevor Sie ihn als Zahl vergleichen. Um die Übermittlung abzulehnen, schreiben Sie eine Nachricht in wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ]. Der Filter wpforms_process_initial_errors wird nach der Schleife auf die gesammelten Fehler angewendet; die bedingte Logik verwendet ihn, um Fehler von ausgeblendeten Feldern zu entfernen.
Quelle
wpforms/includes/class-process.php
Beispiel
Erzwingen Sie einen Mindestbetrag für ein vom Benutzer definiertes Einzelpostenfeld, das die CSS-Klasse set-minimum trägt, und stoppen Sie die Übermittlung mit einem Fehler unter dem Feld, wenn der Betrag niedriger ist.
/**
* Enforce a minimum amount on a User Defined Single Item field.
*
* @link https://wpforms.com/developers/wpforms_process_validate_payment-single/
*
* @param string|int $field_id Field ID.
* @param mixed $field_submit Submitted field value (raw data).
* @param array $form_data Form data and settings.
*/
function wpf_dev_process_validate_payment_single( $field_id, $field_submit, $form_data ) {
// Only run on my form with ID = 143, remember to change this to match your form ID.
if ( absint( $form_data['id'] ) !== 143 ) {
return;
}
// Only run on fields that have the CSS class "set-minimum" in the field's Advanced tab.
$classes = explode( ' ', $form_data['fields'][ $field_id ]['css'] ?? '' );
if ( ! in_array( 'set-minimum', $classes, true ) ) {
return;
}
$minimum_amount = 5;
if ( (float) wpforms_sanitize_amount( $field_submit ) < $minimum_amount ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf(
/* translators: %s - minimum amount. */
esc_html__( 'Minimum amount is %s.', 'wpforms' ),
wpforms_format_amount( $minimum_amount, true )
);
}
}
add_action( 'wpforms_process_validate_payment-single', 'wpf_dev_process_validate_payment_single', 10, 3 );




