Validação de CPF/CNPJ no WHMCS com uso de string de validação de expressão regular
طباعة- 0
- Faça login em seu WHMCS
- Clique em: Opções > Campos Personalizados
- Crie os campos p/ CPF/CNPJ(caso eles não existam)
- Coloque o código no campo de VALIDAÇÃO - String de Validação de Expressão Regular
Expressão regular para validar um campo que aceita CPF ou CNPJ (sem cálculo dos dígitos verificadores):
Esse código, inserido no campo correspondente à solicitação de CPF/CNPJ no WHMCS > Campos Personalizados, valida as inserções de números e/ou traços:
ENTENDA COMO FUNCIONA:
Ela pode ser entendida assim (onde "cpf" é a expressão para validar CPF e "cnpj" é a expressão para validar CNPJ):
As barras inicial e final (/) não fazem parte da expressão propriamente dita - são apenas delimitadores. O caracter ^ no começo e o caracter $ no final exigem que o conteúdo completo do string a ser validado corresponda à expressão entre os mesmos. Os parênteses contendo a barra vertical (a|b)criam uma "opção" alternativa entre "a" e "b". Satisfazendo qualquer uma das duas expressões, o resultado será positivo. No lugar de "a" e "b", temos então as expressões específicas para CPF e CNPJ, separadamente.
Para CPF:
A interrogação (?) faz com que a especificação de caractere precedente seja opcional. Portanto os pontos e o tracinho são opcionais. A classe de caracteres [0-9] representa qualquer caracter de 0 a 9 (poderíamos usar \d, mas eu prefiro [0-9] por ser mais legível). Finalmente, o número entre colchetes ({3}) determina uma quantidade específica de vezes que a especificação de caractere precedente deve se repetir. Assim sendo, são requeridos no total 11 caracteres numéricos (3 + 3 + 3 + 2).
Para CNPJ, a estrutura é semelhante:
Aqui são requeridos no total 14 caracteres numéricos (2 + 3 + 3 + 4 + 2).
Lembrando que a barra invertida (\) antes do ponto (.) e outros caracteres especiais é um caracter de "escape", que serve para desconsiderar a interpretação especial do caractere seguinte e considerá-lo literalmente. (O ponto, sem "escape", significa "qualquer caractere". Com "escape", significa meramente o caractere "ponto" mesmo.)
Para saber se é CPF ou CNPJ (opcional):
No lado do servidor, em PHP, é feita a seleção entre CPF ou CNPJ considerando o número de dígitos presentes no campo:
Observação: isso não substitui a validação feita pela expressão regular que vimos acima, a qual também é realizada no lado do servidor (no meu caso as regras estão embutidas no modelo, com as mesmas expressões regulares de validação que vimos acima para CPF e CNPJ, só que separadas - cada qual em seu respectivo campo).
Caso queira validar mais campos, leia a documentação do WHMCS em:https://docs.whmcs.com/Custom_Fields#Regular_Expression_Validation