Cómo restringir los cupones por importe

Introducción

¿Está interesado en cómo restringir cupones basándose en una cantidad específica? Este tutorial le guiará a través del proceso de utilización de una acción PHP para evitar que los cupones sean procesados cuando su valor está por debajo de un umbral establecido.

Por defecto, tiene la opción de crear cupones en formato de porcentaje o tarifa plana para cualquier importe. Sin embargo, ¿qué ocurre si por error introduces 0,75 en lugar de 75%? Este pequeño fragmento de código puede ayudarle a evitar este tipo de errores en el envío de formularios, y le guiaremos a través del proceso en este tutorial.

Para obtener más información sobre el uso de cupones, consulte esta útil guía.

Creación del cupón

Para empezar, vamos a crear un cupón. En este tutorial, crearemos un cupón con una tarifa plana de 0,75, aunque nuestra intención es establecerla en 75%. Esto es sólo para fines de demostración y para resaltar cómo el fragmento que vamos a añadir puede ayudar con la validación.

Para crear un nuevo cupón, vaya a WPForms " Pagos " Cupones y haga clic en Añadir nuevo cupón. Dentro del campo Nombre, asigne a su cupón un nombre que tenga sentido para usted con fines organizativos.

Luego, en el campo Código puede ingresar manualmente un código de cupón o hacer clic en el botón Generar código para permitir que WPForms cree este código por usted. En el campo Importe, introduzca 0,75 y, en el menú desplegable, asegúrese de seleccionar el símbolo de moneda.

Al seleccionar el símbolo de moneda, está utilizando el descuento a tanto alzado en lugar de un porcentaje.

Para este tutorial, no vamos a establecer una fecha ni una hora, así que nos desplazaremos hacia abajo y seleccionaremos los formularios para los que queremos utilizar este cupón y, a continuación, haremos clic en Guardar cupón para guardar los cambios.

para restringir los cupones, debemos empezar por crear un nuevo cupón

Creación del formulario

Ahora que el cupón está configurado, es el momento de crear el formulario. Para cualquier ayuda sobre cómo crear formularios, echa un vistazo a esta guía paso a paso.

cree su formulario y añada sus campos

Una vez que hayamos añadido el campo Cupón, observará que el cupón ya está asignado.

observe que cuando añade el campo de cupón, los cupones permitidos ya están asignados

Añadir el fragmento

Ahora es el momento de añadir el snippet. Si necesitas ayuda sobre cómo y dónde añadir snippets, revisa este 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 );

Y eso es todo lo que necesita, cada vez que un visitante utilice ese cupón no podrá enviar el formulario.

utilizando este fragmento para restringir los cupones, verá un error en el formulario cuando se utilice el cupón

Acción de referencia: wpforms_process_validate_payment-coupon