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:
Inscreva-se em Nossa News:
Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.

Link Curto para Compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/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.