Você gostaria de fornecer validação adicional do campo de telefone? Por exemplo, se quiser impedir que os usuários insiram números de ligação gratuita no campo Phone, você pode fazer isso facilmente com um pequeno trecho de PHP. Neste tutorial, vamos orientá-lo nas etapas de como evitar que números de telefone gratuitos sejam inseridos no formulário.
Criando o formulário
Para começar, você precisará criar o formulário e adicionar o campo Phone a ele, bem como os campos adicionais necessários no formulário.
Se precisar de ajuda para criar seu formulário, consulte esta documentação.
Configuração do formato do campo Telefone
Para fins desta documentação, vamos evitar qualquer número de telefone que comece com 8
ou +8
. Dependendo de qual Formato que você está usando para o Telefone dependerá do trecho de código que você precisará usar abaixo.
Validação adicional de campo telefônico
Agora é hora de adicionar o snippet PHP de que você precisará. Há dois snippets diferentes e isso depende do formato que foi definido para o campo Phone quando você criou o formulário.
Se precisar de ajuda para adicionar snippets 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 );
Esses dois snippets examinarão o valor do campo Phone 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 será exibida.
E é isso! Você adicionou com êxito a validação adicional ao campo do formulário Phone. Você também gostaria de impedir que determinados e-mails sejam inseridos? Confira nosso tutorial sobre Como restringir domínios de e-mail.