Blog

Como Validar CNPJ no WordPress com Contact Form 7

como validar cnpj wordpress
WordPress Plugins

Como Validar CNPJ no WordPress com Contact Form 7

Ufa! Depois de bastante tempo sem publicar nada aqui no site, por diversos fatores como ter que atender clientes de serviços de marketing digital e dar consultorias pela minha agência M3 Marketing Digital, volto aqui para compartilhar um pouco mais do meu conhecimento com vocês. Neste post, vamos ver como validar CNPJ no WordPress utilizando um plugin de formulário de contato dos mais utilizados no mundo – o Contact Form 7.

Por que Validar CNPJ no WordPress?

Resolvi escrever este Post, pois um cliente teve esta necessidade e eu gastei alguns bons minutos pesquisando uma solução e como não achei nada específico, resolvi criar minha própria solução. Então, eu gravei um vídeo explicando o processo de validação de CNPJ no WordPress com uma função PHP e um filtro do próprio Contact Form 7, que você vê a seguir – Mas, abaixo do vídeo dou alguns links relacionados e um plugin para validar CNPJ para você baixar:

Validação de CNPJ com Contact Form 7

Apesar de ser uma coisa relativamente simples, validar CNPJ no WordPress com o Contact Form7 exige um pouco de código extra e uma função PHP, além do tal filtro que eu mencionei acima, que vou compartilhar com você neste post. Na verdade, eu criei um plugin para fazer a validação do CNPJ, então, você nem precisa mexer com código algum, apenas baixar e instalar o plugin no seu site, ok?

Bem, deixe-me te contar como foi isso…

Eu recebi um pedido de orçamento para validar o campo de CNPJ de um formulário de contato no site de um cliente. O campo era de texto e obrigatório, assim, não poderia ser deixado em branco, mas em contrapartida, ele poderia ser preenchido com um CNPJ Inválido. Então, comecei uma pesquisa no Google com “validar cnpj wordpress“, mas infelizmente não encontrei nada específico, apenas trechos de códigos e funções PHP para validar CNPJ.

Depois algumas páginas visitadas, achei um plugin que prometia ajudar na validação de campos no Contact Form 7, já que era o plugin de formulário que estávamos utilizando no nosso WordPress. Era o plugin Jquery Validation For Contact Form 7 – que me pareceu um bom plugin, mas é claro, não fazia validação de CNPJ.

Continuei minha busca e encontrei um tópico no fórum oficial (Custom field validation code), onde o autor do plugin falava sobre usar um filtro do próprio plugin para fazer a validação. Depois desta informação a busca ficou mais clara pra mim e cheguei até uma página no site oficial do Contact Form 7 que fala sobre “Custom Validation” – Validação Personalizada.

Vale a dica: Participe ativamente do fórum oficial, tem muito conteúdo útil por lá: http://wordpress.org/support/

Solução para Validar CNPJ

Neste ponto ficou bem claro o que eu deveria fazer – utilizar o filtro “wpcf7_validate_ + {type of the form-tag}” em conjunto com uma função PHP para validar CNPJ. Pesquisando, cheguei até um post no site “teo” sobre como validar CNPJ com PHP.

Para trabalhar com mais segurança, resolvi criar um plugin específico, utilizando a função e o filtro que detalho a seguir:

Criação do Plugin

Para criar o plugin (mais detalhes aqui), basta criar um arquivo “.php” com este trecho logo no inicio:

<?php
/*
Plugin Name: Validar CNPJ no WordPress
Description: Plugin Específico para validação de CNPJ utilizando o Contact Form 7
*/

Temos a abertura do PHP, um nome para o plugin e a descrição, que vão aparecer na página de plugins no Painel. Bem simples, não?

Função PHP para Validar CNPJ

Você pode ver a função no site que citei acima. Esta função vai fazer o cálculo do CNPJ para validá-lo e retornar “true” ou “false” – verdadeiro ou falso. Ou seja, vai dizer se é um CNPJ válido ou não.

Para utilizá-la e validar CNPJ é simples, veja a seguir:

// Valida um CNPJ
if ( valida_cnpj('12.345.678/0001-95') ) {
    echo "CNPJ correto.";
} else {
    echo "CNPJ inválido.";
}

O trecho acima utiliza uma estrutura de controle do PHP para estabelecer a condição IF (Se…) e ELSE (Senão…). Também é bem simples e você não tem que entender cada detalhe da função PHP se não quiser, basta saber como utilizá-la e é isso que acabei de mostrar a você.

Validação como um Filtro

O plugin oferece-nos a possibilidade de fazer alguns “upgrades” nas suas funções, utilizando filtros e ações – funções embutidas na codificação do plugin.

Como mencionei também acima, temos a página oficial que mostra como utilizar o filtro do plugin, mas tive que fazer uma adaptação para validar CNPJ, já que é o que precisamos. Ficou da seguinte forma:

// Aqui estão os filtros "wpcf7_validate_text"
add_filter('wpcf7_validate_text','valida_cnpj_filter', 20, 2); // Campo do CNPJ
add_filter('wpcf7_validate_text*', 'valida_cnpj_filter', 20, 2); // Campo do CNPJ Obrigatório

function valida_cnpj_filter( $result, $tag ) {
  $tag = new WPCF7_Shortcode( $tag );
 
  // Aqui vamos testar se é o campo certo...
  if ( 'cnpj' == $tag->name ) {

    // Criamos uma váriavel "$name" para vincular o campo
    $name = $tag->name;

    // Criamos a variável "$the_value" para receber a informação no envio do formulário 
    $the_value = $_POST[$name]; 
 
    // Verificamos se o campo é inválido usando nossa função para validar CNPJ
    if (!valida_cnpj($the_value)) {
      $result->invalidate( $tag, "CNPJ Inválido!" );
    }
 
  }

  return $result;
}

E pronto! Utilizamos o filtro e função PHP para validar o CNPJ no Contact Form 7. O que achou disso?

Criação do campo de CNPJ no formulário

Agora que definimos nosso plugin para validar CNPJ, precisamos criar um campo de CNPJ no Formulário. Para isto, vamos utilizar apenas um campo de texto com o atributo de nome “cnpj”, utilizando shortcode do próprio plugin (Obs: No tópico do fórum que citei acima, o autor do plugin mostra como criar seu próprio shortcode, caso queira criar um específico, por exemplo [cnpj]). Assim, neste caso, ficou da seguinte forma:

<p>
*CNPJ<br />
 [text* cnpj] 
</p>

Acima, temos um campo de texto obrigatório com o atributo nome “cnpj“.

Opções Extras

Se você quiser adicionar uma máscara (formato) ao campo de CNPJ, pode seguir este tutorial.

Conclusão

Agora, depois disso, temos um plugin para validar CNPJ no WordPress quando estivermos utilizando o plugin de formulário de contato Contact Form 7.

E, como havia prometido, aqui está o link de download do plugin – basta instalar e ativar.

É isso que eu tinha para compartilhar com você sobre validação de CNPJ. Espero que você tenha gostado e que seja útil nos seus projetos. Agora, deixe-me saber se isto funcionou para você – escreva nos comentários abaixo.

Até o próximo,

Comments (3)

  1. Adriano Peixoto

    Eu instalei seu plugin no WP, mas quando eu adiciono o campo ‘cnpj’, no form 7, ele não permite a digitação de número, aparece normal a Label e o Campo, mas não da para digitar. Poderia me ajudar.

  2. Adriano Peixoto

    Já resolvi,
    Minha mascara era ‘cnpj’
    Nome campo validação é ‘cnpj’
    Conflitou e tive que mudar o mais fácil.

  3. Leonardo Simas

    Bacana para CNPJ … e para CPF ? =) … seria interesante tbm …

Deixe seu comentário aqui...

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Nosso site usa cookies e, portanto, coleta informações sobre sua visita para melhorar nosso site (por meio de análise), mostrar a você conteúdo de mídia social e anúncios relevantes. Por favor, consulte nossa página Termos & Políticas para mais detalhes ou concorde clicando no botão 'Aceitar'. OBS: Ao continuar a navegação, você, automaticamente, concorda.

Configurações de Cookies

Abaixo, você pode escolher os tipos de cookies que quer permitir neste site. Clique no botão "Salvar Configurações de Cookies" para aplicar sua escolha.

FuncionalNosso site usa cookies funcionais. Esses cookies são necessários para permitir que nosso site funcione.

AnalíticoNosso site usa cookies analíticos para permitir a análise de nosso site e a otimização para o propósito de a.o. a usabilidade.

Mídia SocialNosso site coloca cookies de mídia social para mostrar conteúdo de terceiros, como YouTube e Facebook. Esses cookies podem rastrear seus dados pessoais.

PublicidadeNosso site coloca cookies de publicidade para mostrar anúncios de terceiros com base em seus interesses. Esses cookies podem rastrear seus dados pessoais.

OutrosNosso site coloca cookies de terceiros de outros serviços que não são analíticos, mídia social ou publicidade.