Come limitare i coupon in base all'importo

Introduzione

Vi interessa sapere come limitare i coupon in base a un importo specifico? Questo tutorial vi guiderà attraverso il processo di utilizzo di un'azione PHP per impedire l'elaborazione dei coupon quando il loro valore è inferiore a una soglia stabilita.

Per impostazione predefinita, è possibile creare coupon in formato percentuale o forfettario per qualsiasi importo. Tuttavia, cosa succede se per errore si inserisce .75 invece di 75%? Questo piccolo snippet di codice può aiutarvi a evitare errori di questo tipo nell'invio dei moduli.

Per saperne di più sull'utilizzo dei coupon, consultate questa utile guida.

Creazione del coupon

Per iniziare, creiamo un coupon. In questa guida, creeremo un coupon con una tariffa forfettaria di .75, anche se la nostra intenzione è di impostarla al 75%. Questo è solo a scopo dimostrativo e per evidenziare come lo snippet che aggiungeremo possa aiutare nella validazione.

Per creare un nuovo coupon, andare su WPForms " Pagamenti " Coupon e cliccare su Aggiungi nuovo coupon. Nel campo Nome, assegnare al coupon un nome che abbia senso a fini organizzativi.

Quindi, nel campo Codice è possibile inserire manualmente un codice coupon o fare clic sul pulsante Genera codice per consentire a WPForms di creare questo codice per voi. Nel campo Importo, inserite .75 e, dal menu a tendina, assicuratevi di selezionare il simbolo della valuta.

Selezionando il simbolo della valuta, si utilizza uno sconto forfettario anziché una percentuale.

Per questa esercitazione, non imposteremo una data o un orario, quindi scorreremo verso il basso e selezioneremo i moduli per i quali vogliamo usare questo coupon e poi faremo clic su Salva coupon per salvare le modifiche.

per limitare i coupon, dobbiamo iniziare con la creazione di un nuovo coupon

Creazione del modulo

Ora che il coupon è stato impostato, è il momento di creare il modulo. Per assistenza su come creare i moduli, consultate questa guida passo-passo.

creare il modulo e aggiungere i campi

Una volta aggiunto il campo Coupon, si noterà che il coupon è già assegnato.

notare che quando si aggiunge il campo coupon, i coupon consentiti sono già assegnati

Aggiunta dello snippet

Ora è il momento di aggiungere lo snippet. Se avete bisogno di aiuto su come e dove aggiungere gli snippet, consultate questo tutorial.

/*
 * Do not allow to submit coupons lower than 1.00.
 *
 * @link https://wpforms.com/developers/how-to-restrict-coupons-by-amount/
*/
 
function wpf_discard_low_coupons( $field_id, $field_submit, $form_data ) {
 
    $coupon = wpforms_coupons()->get( 'repository' )->get_coupon_by_code( $field_submit );
 
    if ( $coupon === null ) {
        return;
    }
 
    $currency = wpforms_get_currency();
 
    if ( $coupon->get_discount_type() === 'flat' && (float) $coupon->get_discount_amount() <= 1.00 ) {
        wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = sprintf( /* translators: %s - Currency code name. */
            esc_html__( 'Coupon amount is less that 1.00 %s. Please, use another one.', 'your-translation-domain' ),
            $currency
        );
    }
}
add_action( "wpforms_process_validate_payment-coupon", 'wpf_discard_low_coupons', 10, 3 );

E questo è tutto ciò che serve, ogni volta che un visitatore utilizza il coupon non sarà in grado di inviare il modulo.

Utilizzando questo snippet per limitare i coupon, si vedrà un errore nel modulo quando il coupon viene utilizzato

Riferimento azione: wpforms_process_validate_payment-coupon