Come impostare l'importo minimo per un campo prezzo

Introduzione

Volete impostare un importo minimo per un campo prezzo nei vostri WPForm? Utilizzando un piccolo snippet PHP, è possibile impostare facilmente un importo minimo per il campo prezzo di un singolo elemento definito dall'utente. In questo tutorial, vi illustreremo ogni passo per raggiungere questo obiettivo.

Creazione del modulo

Per prima cosa, è necessario creare un modulo e aggiungere un campo Prezzo di un singolo articolo al modulo. Una volta aggiunto il campo, assicurarsi che il Tipo di articolo sia impostato su Definito dall'utente.

Se avete bisogno di assistenza per impostare un modulo con il campo Oggetto singolo, consultate questo articolo.

creare un nuovo modulo a, aggiungere al modulo un campo per il prezzo di un singolo articolo e impostare il tipo di articolo su definito dall'utente

Aggiunta della classe CSS

Successivamente, aggiungeremo una classe CSS a questo campo, in modo da attivare lo snippet per verificare l'importo minimo richiesto.

Per aggiungere il nome di una classe CSS a un campo del modulo, selezionare il campo Articolo singolo e fare clic sul pulsante Avanzato scheda. All'interno della scheda Classi CSS, inserire il set-minimum e salvare il modulo.

aggiungere il nome della classe css al campo dell'elemento singolo

Aggiunta dello snippet per impostare un importo minimo

In questa fase finale, dovrete aggiungere lo snippet al vostro sito. Se avete bisogno di aiuto per aggiungere gli snippet al vostro sito, consultate questo tutorial.

/**
 * 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 );

Questo snippet verrà eseguito automaticamente per tutti i moduli, ma solo per i campi che hanno il nome della classe CSS set-minimum. Se l'importo inserito non soddisfa il minimo, produrrà un errore quando il modulo viene inviato.

ora c'è un errore di importo minimo quando il modulo viene inviato.

E questo è tutto ciò di cui avete bisogno! Volete sapere come nascondere questo importo dalle notifiche via e-mail? Consultate il nostro tutorial su Come nascondere il valore del prezzo dell'articolo nelle notifiche via e-mail.

FAQ

D: Perché il mio sito non funziona?

A: Se questo errore non blocca l'invio del modulo, ricontrollate di aver inserito il nome della classe CSS nel campo corretto.

aggiungere il nome della classe css al campo dell'elemento singolo

D: Come si imposta un importo massimo?

A: Per utilizzare uno snippet simile per impostare un importo massimo, occorre innanzitutto aggiornare il file Classi CSS nome a set-maximum nello stesso modo in cui è stato fatto nel passo precedente.

Quindi, basta aggiungere questo snippet al proprio sito.

/**
 * 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 );