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 nos seus WPForms? Usando um pequeno snippet 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 através de cada passo de como conseguir isso.

Criar o formulário

Primeiro, é necessário criar um formulário e adicionar um campo de preço de Item único ao formulário. Depois de ter adicionado o campo, certifique-se de que o Tipo de item está definido como Definido pelo utilizador.

Se precisar de ajuda para configurar um formulário com o campo Item único, consulte este artigo.

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

Adicionar a classe CSS

Em seguida, vamos adicionar uma classe CSS a este campo para que o snippet seja ativado para verificar o montante mínimo necessário.

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 separador. Dentro do separador Classes CSS, introduzir o set-minimum e guardar o formulário.

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

Adicionar o snippet para definir um montante mínimo

Nesta etapa final, é necessário 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 );

Este snippet será executado automaticamente para todos os formulários, mas só será executado nos campos que têm o nome de classe CSS set-minimum. Se o montante introduzido não corresponder ao mínimo, será apresentado um erro quando o formulário for submetido.

agora existe um erro de montante mínimo quando o formulário é apresentado.

E é tudo o que precisa! Gostaria de saber como ocultar este valor das notificações por correio eletrónico? Veja o nosso tutorial sobre Como ocultar o valor do preço do item nas notificações por e-mail.

FAQ

P: Porque é que isto não está a funcionar no meu sítio?

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

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

P: Como é que defino um montante máximo?

A: Para usar um snippet semelhante para definir um valor máximo, primeiro você precisa atualizar o Classes CSS nome para set-maximum da mesma forma que no passo anterior.

Depois, basta adicionar este 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 );