Validação de campos no WHMCS – Parte 1

Postado em 23/12/2008 por Angélica Costa

teste

Se você criou um campo customizado para receber cpf de seus clientes, sabe que qualquer coisa pode ser digitada nele. Então é necessário usar uma validação de cpf com javascript.

Este script valida o campo na saída, antes de enviar o formulário, ou seja, quando o cliente digitar o cpf errado, ao clicar no próximo campo, abre um alerta dizendo que o cpf está incorreto. Veja uma demonstração em: http://www.netmundo.com.br/register.php

O primeiro passo é fazer o download do arquivo Validação de CPF (990) e enviar ele para a pasta do template que você está usando;

Na pasta do seu whmcs, navegue até o template que você está usando e abra o arquivo header.tpl e insira o código abaixo antes da tag </head>:

<script type="text/javascript" src="templates/{$template}/valida_cpf.js"></script>

Isto carregará o javascript para que possamos chamar a função de validação quando precisarmos. Agora acesse a administração e vá em CONFIGURATION, CUSTOM CLIENT FIELDS;

Se você não tem um campo de cpf, crie um:

  1. Em field name: CPF
  2. Field Type: Text Box
  3. Marque “required field” (campo obrigatório) e “show on order form” (mostrar no formulário)
  4. Clique em save changes e pronto.
cpf

Custom Client Fields

Agora como na figura acima, coloque o mouse (MAS NÃO CLIQUE) em cima do link: (Remove Custom Field & Delete ALL Data) e observe na barra de status (abaixo da sua página) o link http://seusite.com.br/seuwhmcsadmin/configcustomfields.php?action=delete&id=1

Anote o número que vem após o ID. Este é o número do seu campo no banco de dados.

Agora vá na pasta do seu template, abra o arquivo clientregister.tpl e procure por:

{foreach key=num item=customfield from=$customfields}
<tr><td class="fieldarea">{$customfield.name}</td><td>{$customfield.input} {$customfield.required}</td></tr>
{/foreach}

Substitua por:

{foreach key=num item=customfield from=$customfields}
{if $num=="ID"}
<tr><td class="fieldarea">{$customfield.name}</td><td><input type="text" name="customfield[ID]" size="20" value="{$customfield[ID]}" onBlur="Verifica_campo_CPF(this)"> {$customfield.required}</td></tr>
{else}
<tr><td class="fieldarea">{$customfield.name}</td><td>{$customfield.input} {$customfield.required}</td></tr>
{/if}
{/foreach}

Substitua a palavra ID nos 3 campos destacados acima pelo número que você anotou.

Faça upload e pronto. Lembre de alterar do mesmo modo qualquer outro arquivo que use campos personalizados como clientareadetails.tpl e em orderforms/SEUORDERFORM/ordersignup.tpl

Qualquer dúvida ou problema, use os comentários!



Leia Também:

  • http://www.browncomunicacao.com charles lins

    Pessoal,

    E os clientes que estão fora do Brasil?
    Se o sistema vai validar, este campo não pode ser preenchido por pessoas de outros países.

  • admin

    Neste caso, eu vou postar a outra validação que só é chamada pelo formulário ao clicar enviar.
    Mas lembre que tem que desabilitar o campo de cpf como obrigatório.
    Aí a script “vê” se o campo foi preenchido, se foi, ele valida.

  • http://dezgra.us/ Paulo B

    Olá

    O link para download está com erro.

    Resposta:

    Será corrigido em breve!

  • Vinicius N

    Fiz tudo exatamente como está orientado acima e dá o seguinte erro quando clico em register e tento cadastrar um novo cliente no meu whmcs:

    “Fatal error: Smarty error: [in portal/clientregister.tpl line 55]: syntax error: unidentified token ‘”1“’ (Smarty_Compiler.class.php, line 1396) in /home/prosiste/public_html/central/libs/Smarty.class.php on line 1095″

    Descobri que era só fazer a substituição em clientregister.tpl pelo que está acima que acontecia o erro. Retirando a substituição e deixando como estava antes o erro desaparecia. Em que eu estaria errando? Teria algo a ver com a versão de meu whmcs ser 3.6.2 e não a última?

    Resposta

    Verifique a sintaxe das ” ” aspas.

  • http://www.sorocabanegocios.com.br Mario

    Bem, não consigo fazer funcionar na versão 3.8.1

    É normal ou eu que não estou acertando a mão?

    Não dá nenhuma mensagem de erro, somente não faz a verificação.

    Também não estou conseguindo fazer funcionar o autocompletar de CEP, quen acho que também é algum bloqueio da versão 3.8.1

    Obrigado e parabens pelo site.

    Resposta

    Consigo fazer funciona na versão 3.8.1 sem problemas.

    Creio que seja bloqueio nas funções allow_url_fopen e allow_url_include.

  • http://www.sorocabanegocios.com.br Mario

    “Creio que seja bloqueio nas funções allow_url_fopen e allow_url_include.”

    Há algum modo de contornar caso seja esse o problema?

  • Vinicius N

    Verifiquei a sintaxe das aspas tentando substitui-la de vários modos. Quando usei assim “1″ não apareceu a página com erro mas no campo para colocar o cpf apareceu ”” e não validou. De todas as outras maneiras que tentei mudar as aspas apresentou página com erro.

    Obrigado pela dica mas ainda não consegui…

  • http://perazza.com Jaison Perazza

    Modifiquei para funcionar na versão 3.8.1, como estava não estava funcionando.
    Mas dessa forma funciona perfeitamente:

    {foreach key=num item=customfield from=$customfields}
    {if $customfield.id eq ID }
    {$customfield.name} {$customfield.required}
    {else}
    {$customfield.name}{$customfield.input} {$customfield.required}
    {/if}
    {/foreach}

  • Alessandro

    o Link para a imagem screen-cpf.png está quebrado. Não encontrei onde podemos ver o ID para o campo do CPF.

    • http://webomega.com.br Julio Cesar

      Alessandro você já conseguiu validar o campo do CPF? Porque estou com o mesmo problema. Até agora não consegui uma forma de ver onde está este link

  • http://www.whmcs.blog.br Edvan

    Realmente tá quebrado.

    O ID você poderá ver na barra de status do seu navegador.

  • http://www.whmcs.blog.br Edvan

    Fique atento nas aspas duplas.

    Utilize um editor html e você não terá problemas.

    • http://webomega.com.br Julio Cesar

      Olá Edvan,

      A questão das funções allow_url_fopen e allow_url_include, a include se não estiver habilitada não funciona?

      Porque roda sem mandar fazer a verificação do CPF, não apresenta nenhuma mensagem nem de arpovação e nem de erro, aprova logo o cadastro. Então fico pensando e me perguntando o que poderia ser este erro?

      Lhe agradeço antecipadamente!

  • http://www.whmcs.blog.br Edvan

    Não tem nada a ver.

    Você está se passando apenas na programação.

  • http://financeiro.brasilserver1.com.br claudio

    estou com o mesmo erro do julio
    estou tentando na versao 4, ao registrar ele ja registra o usuario sem fazer validacao

  • http://www.dimixus.com Dimixus

    Para resolver o problema do erro acesse cionfiguração / configurações gerais / mail, e deixe em branco o campo “Email CSS Code”, salve e pronto.

    http://www.amwebsites.com.br

  • http://www.whmcs.blog.br Edvan

    Fique atento as apas.

  • http://www.meusite.com.br Roots

    Fiz todo o procedimento, o meu envia sem validar!

    {foreach key=num item=customfield from=$customfields}
    {if $num==”7″}
    {$customfield.name} {$customfield.required}
    {else}
    {$customfield.name}{$customfield.input} {$customfield.required}
    {/if}
    {/foreach}

    Tbm ñ vejo problema algum com as aspas, coloquei da forma q vc indicou!

  • http://www.ntgospel.com Diego

    Olá.
    Esse negócio é realmente uma Trosóba pra mim!
    Configurei como estava aqui e até funcionou por um tempo, depois simplesmente parou de funcionar, assim, puf!!!

    Verifiquei meus arquivos no servidor e eles estão lá como eu deixei.
    O que pode ser?

  • http://www.whmcs.blog.br Edvan

    Já configurei em quase 30 WHMCS e nunca tive problemas.

    Tem que ficar atento ao JS.

  • http://www.cyberdata.com.br Jefferson

    E ai galera blz.
    Bom, uma duvida. Como posso informar essa custom fields no email que é disparado ao cliente, tipow, para ele saber que realmente ta correto os dados dele.

    E também, alguem saberia o outro comando (script) para por na template dos emails de produtos quando esses produtos possuem campos extras (custom fields) configuradas como por exemplo: usuario…

    Como faço para ele pegar essa custom e mandar no email automaticamente quando aceita o pedido do cliente.

  • http://www.hostlandia.com.br Dermival Souza

    Edvan, o meu não funcionou, pode colocar qualquer CPF que ele aceita, até letras ele aceita, veja aqui…

    http://www.hostlandia.com.br/central/

    Outra coisa, a imagem está offline.

    Aguardo respostas.

  • Marcelo

    Olá,

    Fiz esse procedimento, e a validação funcionou normalmente, a unica coisa q ta acontecendo é q não esta gravando o CPF no banco de dados.

    Estou usando assim:

    {foreach key=num item=customfield from=$customfields}
    {if $num==”1″}
    {$customfield.name} {$customfield.required}
    {else}
    {$customfield.name}{$customfield.input} {$customfield.required}
    {/if}
    {/foreach}

    agradeço qualquer ajuda…

  • Téo

    comigo tambem, fiz tudo certo mais não esta gravando no banco de dados!!!!?????

  • Téo

    acabei de verificar que o problema era no id que tinha colocado incorreto, mais ai coloquei o correto e parou de funcionar, e agora esta gravando normal, mais não funciona a validação, estou usando a versão 4.1.2

  • Marcel

    Fiz todo o procedimento e funcionou, porem não grava no BD, tenho um problema pois quando tento fazer a exclusão do form adcional para identificar sei “ID”, não aparece nem na barra do navegador . Alguem saberia de dizer outra forma para eu identificar o “ID”, ja pensei olhando direto na Mysqladmin e não encontrei.

  • http://www.whmcs.blog.br Edvan

    é simples… insira o campo adicional em seguida visualize o HTML do painel do cliente.

  • http://www.hostpara.com.br Rafael

    Edvan essa validação funciona na versao 4.2.1

  • http://www.whmcs.blog.br Edvan

    Funciona em qualquer versão desde que saiba realmente o que está fazendo.

  • Silvio

    Para ver o ID, basta visualizar o codigo fonte (no navegador).

    Silvio

  • Jefferson

    Olá,
    Alguém saberia informar o motivo desde vacilo no script.
    Experimentem digitar numero repetitivo como: 11111111111

    Observem que ele válida normal e deixa passar. Existe alguma modificação de como impedir essa repetição ser válida?

  • http://www.whmcs.blog.br Edvan

    Isso é bug na validação.

    Para resolver isso é só criar uma restrição no JS para números 111.111.11-11 e etc…

    Exemplo: http://www.mhavila.com.br/topicos/web/cpf_cnpj.html

  • Mello

    Edvan

    Poderia me dizer como colocar uma segunda validação?
    nao verdade estou colocando formatação para telefone celular.
    Formatação para a opção de telefone padrao ja fiz, só nao consigo para o numero adicional.

  • Anônimo

    Em exibir código fonte você poderá ver o ID. Isso vale para qualquer customfield ( seja no admin ou painel cliente ).

  • http://mghospedagem.com/ MGHospedagem

    Por acaso ele valida o CPF junto ao nome? Eu tinha um que fazia validação de CPF, mas não validava com o nome, por exemplo, o cliente poderia ser chamar José Dos Campos Fonseca, mas usar o CPF de João Silva Sousa, então o cliente registrado no sistema seria 
    José Dos Campos Fonseca com CPF de outra pessoa. E então?

    • whmcsblogbr

      Não… isso só seria possível se o script validasse via Receita Federal (RF).

      Eu até tenho um outro script que verifica perante a RF mas para isso tem que digitar o captcha. Não comercializo esse script!

Serviços WHMCS

Enquetes

Você gostou das novidades da Versão 5.0?

View Results

Loading ... Loading ...

Facebook



Licenças WHMCS




Acompanhe