Introducción
¿Le gustaría establecer un importe mínimo para un campo de precio en su WPForms? Usando un pequeño snippet PHP puede fácilmente establecer un monto mínimo para el campo de precio de Artículo Único que es Definido por el Usuario. En este tutorial, le guiaremos a través de cada paso para lograrlo.
Creación del formulario
En primer lugar, deberá crear un formulario y añadir un campo de precio de artículo único al formulario. Una vez añadido el campo, asegúrese de que el Tipo de artículo está definido como Definido por el usuario.
Si necesita ayuda para configurar un formulario con el campo Elemento único, consulte este artículo.
Añadir la clase CSS
A continuación, vamos a añadir una clase CSS a este campo para que active el fragmento para comprobar la cantidad mínima que necesitamos.
Para añadir un nombre de clase CSS a un campo de formulario, seleccione el botón Artículo único y pulse el botón Avanzado pestaña. Dentro de la pestaña Clases de CSSintroduzca el set-minimum
y guarde el formulario.
Añadir el fragmento para fijar un importe mínimo
En este último paso, tendrá que añadir el fragmento a su sitio. Si necesitas ayuda para añadir snippets a tu sitio, consulta este 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 );
Este snippet se ejecutará automáticamente para todos los formularios pero sólo se ejecutará en los campos que tengan el nombre de clase CSS set-minimum. Si la cantidad introducida no alcanza el mínimo, se producirá un error cuando se envíe el formulario.
¡Y eso es todo lo que necesitas! ¿Quiere saber cómo ocultar este importe de las notificaciones por correo electrónico? Consulte nuestro tutorial sobre Cómo ocultar el valor del precio del artículo en las notificaciones por correo electrónico.
PREGUNTAS FRECUENTES
P: ¿Por qué no funciona en mi sitio?
A: Si este error no detiene el envío del formulario, compruebe que ha introducido el nombre de la clase CSS en el campo correcto.
P: ¿Cómo puedo fijar un importe máximo?
A: Para utilizar un fragmento similar para establecer un importe máximo, primero tendrá que actualizar el campo Clases de CSS nombre a set-maximum
de la misma manera que en el paso anterior.
A continuación, añada este fragmento a su sitio web.
/** * 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 );