Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

So legen Sie einen Mindestbetrag für ein Preisfeld fest

Einleitung

Möchten Sie einen Mindestbetrag für ein Preis-Feld in Ihren WPForms festlegen? Mit einem kleinen PHP-Snippet können Sie ganz einfach einen Mindestbetrag für das Preis-Feld Einzelposten festlegen, das benutzerdefiniert ist. In diesem Tutorial führen wir Sie Schritt für Schritt durch, wie Sie dies erreichen.

Erstellung des Formulars

Zuerst müssen Sie ein Formular erstellen und ein Preis-Feld vom Typ Einzelposten hinzufügen. Sobald Sie das Feld hinzugefügt haben, stellen Sie bitte sicher, dass der Postentyp auf Benutzerdefiniert eingestellt ist.

Wenn Sie Hilfe beim Einrichten eines Formulars mit dem Feld Einzelposten benötigen, lesen Sie bitte diesen Artikel.

Erstellen Sie ein neues Formular, fügen Sie ein Einzelposten-Preis-Feld zu Ihrem Formular hinzu und legen Sie den Postentyp auf benutzerdefiniert fest

Hinzufügen der CSS-Klasse

Als Nächstes werden wir diesem Feld eine CSS-Klasse hinzufügen, damit der Snippet ausgelöst wird, um den von uns benötigten Mindestbetrag zu überprüfen.

Um einem Formularfeld einen CSS-Klassennamen hinzuzufügen, wählen Sie das Feld Einzelposten aus und klicken Sie auf die Registerkarte Erweitert. Geben Sie unter CSS-Klassen set-minimum ein und speichern Sie das Formular.

Fügen Sie den CSS-Klassennamen zum Einzelposten-Feld hinzu

Hinzufügen des Snippets zur Festlegung eines Mindestbetrags

In diesem letzten Schritt müssen Sie das Snippet zu Ihrer Website hinzufügen. Wenn Sie Hilfe beim Hinzufügen von Snippets zu Ihrer Website benötigen, sehen Sie sich dieses Tutorial an.

/**
 * Set a minimum amount price field.
 *
 * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/
 */

function wpf_set_minimum_amount_input( $field_id, $field_submit, $form_data ) {
 
    // This snippet will run for all forms
    $form_id = $form_data[ 'id' ];
 
    // And it will run for all fields with the CSS class of set-minimum
    $fields  = $form_data[ 'fields' ];
     
     
	// Define your minimum amount here.
	$minimum_amount = 5;
 
    // Check if field has custom CSS class configured
    if ( !empty( $fields[ $field_id ][ 'css' ] ) ) {
 
        $classes = explode( ' ', $fields[$field_id][ 'css' ] );
 
        if ( in_array( 'set-minimum', $classes ) ) {
 
            if ( $minimum_amount > (float) wpforms_sanitize_amount( $field_submit ) ) {
 
                wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Minimum amount is $' . $minimum_amount . '.', 'plugin-domain' );
 
                return;
            }
        }
    }
}
add_action( 'wpforms_process_validate_payment-single', 'wpf_set_minimum_amount_input', 10, 3 );

Dieses Snippet wird automatisch für alle Formulare ausgeführt, aber nur für die Felder, die den CSS-Klassennamen set-minimum haben. Wenn der eingegebene Betrag das Minimum nicht erreicht, wird beim Absenden des Formulars ein Fehler angezeigt.

Jetzt wird beim Absenden des Formulars ein Fehler wegen des Mindestbetrags angezeigt.

Und das ist alles, was Sie brauchen! Möchten Sie wissen, wie Sie diesen Betrag aus den E-Mail-Benachrichtigungen ausblenden können? Sehen Sie sich unser Tutorial So blenden Sie den Artikelpreiswert in den E-Mail-Benachrichtigungen aus an.

FAQ

F: Warum funktioniert das nicht für meine Website?

A: Wenn dieser Fehler die Übermittlung Ihres Formulars nicht stoppt, überprüfen Sie doppelt, ob Sie den CSS-Klassennamen in das richtige Feld eingegeben haben.

Fügen Sie den CSS-Klassennamen zum Einzelposten-Feld hinzu

F: Wie lege ich einen Höchstbetrag fest?

A: Um ein ähnliches Snippet zum Festlegen eines Höchstbetrags zu verwenden, müssen Sie zuerst den Namen der CSS-Klassen in set-maximum ändern, auf die gleiche Weise, wie Sie es im vorherigen Schritt getan haben.

Fügen Sie dann einfach dieses Snippet zu Ihrer Website hinzu.

/**
 * Set a maximum amount price field.
 *
 * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/
 */
 
function wpf_set_maximum_amount_input( $field_id, $field_submit, $form_data ) {
 
    // This snippet will run for all forms
    $form_id = $form_data[ 'id' ];
 
    // And it will run for all fields with the CSS class of set-minimum
    $fields  = $form_data[ 'fields' ];
     
     
	// Define your minimum amount here.
	$maximum_amount = 5000;
 
    // Check if field has custom CSS class configured
    if ( !empty( $fields[ $field_id ][ 'css' ] ) ) {
 
        $classes = explode( ' ', $fields[ $field_id ][ 'css' ] );
 
        if ( in_array( 'set-maximum', $classes ) ) {
 
            if ( $maximum_amount < (float) wpforms_sanitize_amount( $field_submit ) ) {
 
                wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Maximum amount is $' . $maximum_amount . '.', 'plugin-domain' );
 
                return;
            }
        }
    }
}
add_action( 'wpforms_process_validate_payment-single', 'wpf_set_maximum_amount_input', 10, 3 );