Introdução
Gostaria de definir um valor mínimo para um campo de preço em seus WPForms? Usando um pequeno trecho de PHP, você pode facilmente definir um valor mínimo para o campo de preço de item único que é definido pelo usuário. Neste tutorial, vamos orientá-lo em cada etapa de como fazer isso.
Criando o formulário
Primeiro, você precisará criar um formulário e adicionar um campo de preço de item único ao formulário. Depois de adicionar o campo, certifique-se de que o Tipo de item esteja definido como Definido pelo usuário.
Se você precisar de ajuda para configurar um formulário com o campo Item único, consulte este artigo.
Adição da classe CSS
Em seguida, adicionaremos uma classe CSS a esse campo para que ele acione o snippet para verificar o valor mínimo exigido.
Para adicionar um nome de classe CSS a um campo de formulário, selecione a opção Item único e clique no campo Avançado guia. Dentro da guia Classes CSS, digite o set-minimum
e salve o formulário.
Adição do snippet para definir um valor mínimo
Nesta etapa final, você precisará adicionar o snippet ao seu site. Se precisar de ajuda para adicionar snippets ao seu site, consulte 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 );
Esse snippet será executado automaticamente em todos os formulários, mas somente nos campos que têm o nome de classe CSS set-minimum. Se o valor inserido não atingir o mínimo, será gerado um erro quando o formulário for enviado.
E isso é tudo o que você precisa! Gostaria de saber como ocultar esse valor das notificações por e-mail? Confira nosso tutorial sobre Como ocultar o valor do preço do item nas notificações por e-mail.
PERGUNTAS FREQUENTES
P: Por que isso não está funcionando em meu site?
A: Se esse erro não estiver impedindo o envio do formulário, verifique novamente se você inseriu o nome da classe CSS no campo correto.
P: Como faço para definir um valor máximo?
A: Para usar um snippet semelhante para definir um valor máximo, primeiro você precisará atualizar o Classes CSS nome para set-maximum
da mesma forma que você fez na etapa anterior.
Em seguida, basta adicionar esse snippet ao seu site.
/** * 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 );