Como definir o valor mínimo para um campo de preço

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.

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

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.

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

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.

agora há um erro de valor mínimo quando o formulário é 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.

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

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 );