Atenção!

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

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

Ignorar

Como Definir o Montante 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, pode facilmente definir um valor mínimo para o campo de preço de Item Único que é Definido pelo Utilizador. Neste tutorial, vamos guiá-lo passo a passo sobre como conseguir isto.

Criação do formulário

Primeiro, terá de criar um formulário e adicionar um campo de preço de Item Único ao formulário. Assim que tiver adicionado o campo, certifique-se de que o Tipo de Item está definido como Definido pelo Utilizador.

Se precisar de alguma assistência na configuração de um formulário com o campo de Item Único, consulte este artigo.

criar um novo formulário, adicionar um campo de preço de item único ao seu formulário e definir o tipo de item como definido pelo utilizador

Adicionar a classe CSS

Em seguida, vamos adicionar uma classe CSS a este campo para que 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 no separador Avançadas. Dentro das Classes CSS, insira set-minimum e guarde o formulário.

adicionar o nome da classe css ao campo de item único

Adicionar o trecho para definir um valor mínimo

Nesta etapa final, terá de 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 de classe CSS set-minimum. Se o valor inserido não atingir o mínimo, produzirá um erro quando o formulário for enviado.

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

E é tudo o que precisa! Gostaria de saber como ocultar este valor das notificações por e-mail? Consulte o nosso tutorial sobre Como Ocultar o Valor do Preço do Item nas Notificações por E-mail.

FAQ

P: Por que isto não está a funcionar no meu site?

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

adicionar 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 terá de 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 );