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

Gostaria de fornecer validação adicional para o campo de telefone? Por exemplo, se desejar impedir que os utilizadores insiram números gratuitos no seu campo Telefone, pode conseguir isto facilmente com um pequeno trecho de código PHP. Neste tutorial, vamos guiá-lo através dos passos sobre como impedir a inserção de números gratuitos no seu formulário.

Criação do formulário

Para começar, terá de criar o seu formulário e adicionar o seu campo Telefone ao seu formulário, bem como quaisquer campos adicionais de que necessitará no seu formulário.

Se precisar de ajuda na criação do seu formulário, consulte esta documentação.

para fornecer validação adicional do campo de telefone, terá primeiro de criar o seu formulário.

Definir o formato do campo Telefone

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

Selecione o formato que deseja usar no seu campo de telefone

Validação Adicional do Campo Telefone

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

Se precisar de ajuda para adicionar trechos ao seu site, veja 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 de código analisarão o valor do campo Telefone quando o formulário for submetido e, se começar com o número 8 ou +8, o formulário não será submetido e aparecerá uma mensagem de erro.

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

E é tudo! Adicionou com sucesso validação adicional para o seu campo de formulário Telefone. Gostaria também de impedir a entrada de determinados e-mails? Consulte o nosso tutorial sobre Como Restringir Domínios de E-mail.

Filtro de Referência

wpforms_process_validate_phone