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