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 Fornecer Validação Adicional do Campo de Telefone

Gostaria de fornecer validação adicional para o campo de telefone? Por exemplo, se você quiser impedir que os usuários insiram números gratuitos em seu campo Telefone, você pode conseguir isso facilmente com um pequeno trecho de PHP. Neste tutorial, vamos guiá-lo através das etapas sobre como impedir que números gratuitos sejam inseridos em seu formulário.

Criando o formulário

Para começar, você precisará criar seu formulário e adicionar seu campo Telefone ao seu formulário, bem como quaisquer campos adicionais de que precisará em seu formulário.

Se precisar de ajuda para criar seu formulário, consulte esta documentação.

para fornecer validação adicional de campo de telefone, você precisará primeiro criar seu formulário.

Configurando o formato do campo Telefone

Para fins desta documentação, vamos impedir qualquer número de telefone que comece com 8 ou +8. Dependendo do Formato que você está usando para o campo do formulário Telefone, dependerá do trecho de código que você precisará usar abaixo.

Selecione o formato que deseja usar no seu campo de telefone

Validação Adicional do Campo de Telefone

Agora é hora de adicionar o trecho de PHP que você precisará. Existem dois trechos diferentes e isso depende de qual Formato foi definido para o campo Telefone quando você criou seu formulário.

Se precisar de ajuda para adicionar trechos ao seu site, consulte este tutorial.

Formato de Telefone dos EUA

/**
 * Custom US format phone field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone($field_id, $field_submit, $form_data)
{
        //  Only check for US phone field format
	if ( 'us' === $form_data[ 'fields' ][$field_id][ 'format' ]) { 

		$stripped_phone = str_replace(array( '(', ')'), '', (string) $field_submit);

		$prefixes = [ '8', '+8' ];

		$regexp = implode( '|', $prefixes);

		if (preg_match( '/^[' . $regexp . ']/', $stripped_phone)) {
			wpforms()->process->errors[$form_data[ 'id' ]][$field_id] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes ) . '"', 'plugin-domain' );
		}
	}
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3);

Formato de Telefone Inteligente e Internacional

/**
 * Custom Smartphone and International field Validation on submit (reject defined prefixes).
 *
 * @link  https://wpforms.com/developers/how-to-provide-additional-phone-field-validation/
 */

function wpf_dev_process_validate_phone( $field_id, $field_submit, $form_data ) {

   $prefixes = [ '8', '+8' ];

   $regexp = implode( '|', $prefixes );

   if ( preg_match( '/^[' . $regexp . ']/', (string) $field_submit ) ) {
      wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'The number should not start with "' . implode( '", "', $prefixes) . '"', 'plugin-domain' );
   }
}

add_action( 'wpforms_process_validate_phone', 'wpf_dev_process_validate_phone', 10, 3 );

Ambos os trechos analisarão o valor do campo Telefone quando o formulário for enviado e, se ele começar com o número 8 ou +8, o formulário não será enviado e uma mensagem de erro aparecerá.

Ao fornecer uma validação adicional de campo de telefone, você pode facilmente impedir que números gratuitos sejam inseridos em seu formulário.

E é isso! Você adicionou com sucesso validação adicional para o seu campo de formulário Telefone. Você também gostaria de impedir que determinados e-mails sejam inseridos? Confira nosso tutorial sobre Como Restringir Domínios de E-mail.

Filtro de Referência

wpforms_process_validate_phone