post #6142
Código PHP para validar CPF ou CNPJ em formulários do Elementor
Publicado em: 03/04/2025 / Atualizado em: 03/04/2025
Nesse post eu vou compartilhar com você um código em PHP para realizar a validação de campos CPF ou CNPJ no formulário do Elementor no WordPress.
function validar_cpf_cnpj_elementor( $record, $ajax_handler ) {
$fields = $record->get_field( [ 'id' => 'cpf_cnpj' ] );
if ( empty( $fields ) ) {
return;
}
$field = current( $fields );
$valor = preg_replace( '/\D/', '', $field['value'] );
if ( ! validar_cpf_cnpj( $valor ) ) {
$ajax_handler->add_error(
$field['id'],
esc_html__( 'CPF ou CNPJ inválido.', 'textdomain' )
);
}
}
add_action( 'elementor_pro/forms/validation', 'validar_cpf_cnpj_elementor', 10, 2 );
function validar_cpf_cnpj( $valor ) {
if ( strlen( $valor ) === 11 ) {
return validar_cpf( $valor );
} elseif ( strlen( $valor ) === 14 ) {
return validar_cnpj( $valor );
}
return false;
}
function validar_cpf( $cpf ) {
if ( preg_match( '/(\d)\1{10}/', $cpf ) ) return false;
for ( $t = 9; $t < 11; $t++ ) {
$d = 0;
for ( $c = 0; $c < $t; $c++ ) {
$d += $cpf[$c] * ( ( $t + 1 ) - $c );
}
$d = ( ( 10 * $d ) % 11 ) % 10;
if ( $cpf[$c] != $d ) return false;
}
return true;
}
function validar_cnpj( $cnpj ) {
if ( preg_match( '/(\d)\1{13}/', $cnpj ) ) return false;
$soma = 0;
$peso = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
for ( $i = 0; $i < 12; $i++ ) {
$soma += $cnpj[$i] * $peso[$i];
}
$resto = $soma % 11;
$dig1 = ($resto < 2) ? 0 : 11 - $resto;
$soma = 0;
$peso = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
for ( $i = 0; $i < 13; $i++ ) {
$soma += $cnpj[$i] * $peso[$i];
}
$resto = $soma % 11;
$dig2 = ($resto < 2) ? 0 : 11 - $resto;
return ( $cnpj[12] == $dig1 && $cnpj[13] == $dig2 );
}Publicações recomendadas:
Link Direto
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link direto abaixo. Basta copiar.
bruno.art.br/?p=6142
ID de Referência: 6142
Sugira uma publicação
Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.