Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Come impostare un importo minimo per un campo prezzo

Introduzione

Vuoi impostare un importo minimo per un campo prezzo sul tuo WPForms? Utilizzando un piccolo snippet PHP puoi facilmente impostare un importo minimo per il campo prezzo Articolo Singolo che è Definito dall'utente. In questo tutorial, ti guideremo passo dopo passo su come ottenere questo risultato.

Creazione del modulo

Innanzitutto, dovrai creare un modulo e aggiungere un campo prezzo Articolo Singolo al modulo. Una volta aggiunto il campo, assicurati che il Tipo di Articolo sia impostato su Definito dall'utente.

Se hai bisogno di assistenza nella configurazione di un modulo con il campo Articolo Singolo, dai un'occhiata a questo articolo.

crea un nuovo modulo, aggiungi un campo prezzo articolo singolo al tuo modulo e imposta il tipo di articolo su definito dall'utente

Aggiunta della classe CSS

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

Per aggiungere un nome di classe CSS a un campo del modulo, seleziona il campo Articolo Singolo e fai clic sulla scheda Avanzate. All'interno delle Classi CSS, inserisci set-minimum e salva il modulo.

aggiungi il nome della classe CSS al campo articolo singolo

Aggiunta dello snippet per impostare un importo minimo

In quest'ultimo passaggio, dovrai aggiungere lo snippet al tuo sito. Se hai bisogno di aiuto per aggiungere snippet al tuo sito, consulta 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 verrà eseguito solo sui campi che hanno il nome della classe CSS set-minimum. Se l'importo inserito non soddisfa il minimo, verrà visualizzato un errore al momento dell'invio del modulo.

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

E questo è tutto ciò che ti serve! Vuoi sapere come nascondere questo importo dalle notifiche via email? Dai un'occhiata al nostro tutorial su Come nascondere il valore del prezzo dell'articolo nelle notifiche via email.

FAQ

D: Perché non funziona per il mio sito?

R: Se questo errore non impedisce l'invio del tuo modulo, ricontrolla di aver inserito il nome della classe CSS nel campo corretto.

aggiungi il nome della classe CSS al campo articolo singolo

D: Come imposto un importo massimo?

R: Per utilizzare uno snippet simile per impostare un importo massimo, prima dovrai aggiornare il nome delle Classi CSS in set-maximum nello stesso modo in cui hai fatto nel passaggio precedente.

Quindi, aggiungi semplicemente questo snippet al tuo 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 );