Skip to content

Instantly share code, notes, and snippets.

@luizfelipeleite
Created December 4, 2020 17:08
Show Gist options
  • Save luizfelipeleite/3b214995e3c359eda46ea2affb4456f9 to your computer and use it in GitHub Desktop.
Save luizfelipeleite/3b214995e3c359eda46ea2affb4456f9 to your computer and use it in GitHub Desktop.
Validação CPF/CNPJ com Jquery Mask e PHP
jQuery(document).ready(function($){
jQuery.noConflict();
$('.wpcf7-cpf').mask('000.000.000-00');
$('.wpcf7-cnpj').mask('00.000.000/0000-00');
});
<?php
defined('ABSPATH') || die();
function cf7vm_validate_cnpj($cnpj = null) {
if( empty($cnpj) ){
return false;
}
if ($cnpj == '00.000.000/0000-00' || $cnpj == '11.111.111/1111-11' || $cnpj == '22.222.222/2222-22' || $cnpj == '33.333.333/3333-33' || $cnpj == '44.444.444/4444-44' || $cnpj == '55.555.555/5555-55' || $cnpj == '66.666.666/6666-66' || $cnpj == '77.777.777/7777-77' || $cnpj == '88.888.888/8888-88' || $cnpj == '99.999.999/9999-99') {
return false;
}
$cnpj = preg_replace( '/[^0-9]/', '', $cnpj );
$cnpj = (string)$cnpj;
$cnpj_original = $cnpj;
$primeiros_numeros_cnpj = substr( $cnpj, 0, 12 );
if ( ! function_exists('multiplica_cnpj') ) {
function multiplica_cnpj( $cnpj, $posicao = 5 ) {
$calculo = 0;
for ( $i = 0; $i < strlen( $cnpj ); $i++ ) {
$calculo = $calculo + ( $cnpj[$i] * $posicao );
$posicao--;
if ( $posicao < 2 ) {
$posicao = 9;
}
}
return $calculo;
}
}
$primeiro_calculo = multiplica_cnpj( $primeiros_numeros_cnpj );
$primeiro_digito = ( $primeiro_calculo % 11 ) < 2 ? 0 : 11 - ( $primeiro_calculo % 11 );
$primeiros_numeros_cnpj .= $primeiro_digito;
$segundo_calculo = multiplica_cnpj( $primeiros_numeros_cnpj, 6 );
$segundo_digito = ( $segundo_calculo % 11 ) < 2 ? 0 : 11 - ( $segundo_calculo % 11 );
$cnpj = $primeiros_numeros_cnpj . $segundo_digito;
if ( $cnpj === $cnpj_original ) {
return true;
}
}
<?php
defined('ABSPATH') || die();
function validate_cpf($cpf = null){
if( empty($cpf) ){
return false;
}
$cpf = preg_replace("/[^0-9]/", "", $cpf);
$cpf = str_pad($cpf, 11, '0', STR_PAD_LEFT);
if( strlen($cpf) != 11 ){
return false;
} else if( $cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222' || $cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' || $cpf == '66666666666' || $cpf == '77777777777' || $cpf == '88888888888' || $cpf == '99999999999' ){
return false;
} else {
for ($t = 9; $t < 11; $t++) {
for ($d = 0, $c = 0; $c < $t; $c++) {
$d += $cpf{$c} * (($t + 1) - $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf{$c} != $d) {
return false;
}
}
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment