Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Como Definir um Valor Mínimo para um Campo de Preço

Introdução

Gostaria de definir um valor mínimo para um campo de preço no seu 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 guiá-lo por cada etapa de como conseguir 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 precisar de ajuda para configurar um formulário com o campo de Item Único, consulte este artigo.

crie um novo formulário, adicione um campo de preço de item único ao seu formulário e defina o tipo de item como definido pelo usuário

Adicionando a classe CSS

Em seguida, vamos adicionar uma classe CSS a este campo para que ele acione o trecho para verificar o valor mínimo que exigimos.

Para adicionar um nome de classe CSS a um campo de formulário, selecione o campo de Item Único e clique na guia Avançado. Dentro de Classes CSS, insira set-minimum e salve o formulário.

adicione o nome da classe CSS ao campo de item único

Adicionando o trecho para definir um valor mínimo

Nesta etapa final, você precisará adicionar o trecho ao seu site. Se precisar de ajuda para adicionar trechos 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 );

Este trecho será executado automaticamente para todos os formulários, mas só será executado nos campos que tiverem o nome da classe CSS set-minimum. Se o valor inserido não atender ao mínimo, ele produzirá um erro quando o formulário for enviado.

agora há um erro de valor mínimo quando o formulário é enviado.

E é só isso! 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 no meu site?

R: Se este erro não estiver impedindo o envio do seu formulário, verifique se você inseriu o nome da classe CSS no campo correto.

adicione o nome da classe CSS ao campo de item único

P: Como defino um valor máximo?

R: Para usar um trecho semelhante para definir um valor máximo, primeiro você precisará atualizar o nome das Classes CSS para set-maximum da mesma forma que fez na etapa anterior.

Em seguida, basta adicionar este trecho 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 );