Resumen de IA
Introducción
¿Te gustaría establecer una cantidad mínima para un campo de precio en tu WPForms? Usando un pequeño fragmento de PHP puedes establecer fácilmente una cantidad mínima para el campo de precio de Artículo único que es Definido por el usuario. En este tutorial, te guiaremos paso a paso sobre cómo lograr esto.
Creación del formulario
Primero, necesitarás crear un formulario y añadir un campo de precio de Artículo único al formulario. Una vez que hayas añadido el campo, asegúrate de que el Tipo de artículo esté configurado como Definido por el usuario.
Si necesitas ayuda para configurar un formulario con el campo de Artículo único, consulta 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 que comprueba la cantidad mínima que requerimos.
Para añadir un nombre de clase CSS a un campo del formulario, selecciona el campo de Artículo único y haz clic en la pestaña Avanzado. Dentro de Clases CSS, introduce set-minimum y guarda el formulario.

Añadir el fragmento para establecer una cantidad mínima
En este último paso, necesitarás añadir el fragmento a tu sitio. Si necesitas ayuda para añadir fragmentos 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 fragmento se ejecutará automáticamente para todos los formularios, pero solo se ejecutará en los campos que tengan el nombre de clase CSS set-minimum. Si la cantidad introducida no cumple el mínimo, se producirá un error al enviar el formulario.

¡Y eso es todo lo que necesitas! ¿Te gustaría saber cómo ocultar esta cantidad en las notificaciones por correo electrónico? Consulta 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 esto en mi sitio?
R: Si este error no está impidiendo el envío de tu formulario, comprueba que has introducido el nombre de la clase CSS en el campo correcto.

P: ¿Cómo establezco una cantidad máxima?
R: Para usar un fragmento similar para establecer una cantidad máxima, primero necesitarás actualizar el nombre de Clases CSS a set-maximum de la misma manera que lo hiciste en el paso anterior.
Luego, simplemente añade este fragmento a tu sitio.
/**
* 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 );