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,