Os campos personalizados no WHMCS permitem a coleta de informações adicionais dos clientes seja no momento do registro (register.php) ou no checkout/finalização do pedido (cart.php?a=checkout), não existe limite na criação/exibição dos campos mas o ideal é que seja o mínimo possível para agilizar cadastro/finalização do pedido. Podemos utilizar os campos personalizados nos produtos/serviços ou nos departamentos de suporte e definir se será visível ao cliente ou modo admin ( apenas os administradores do sistema poderão inserir/visualizar informações ). Confira outras informações na documentação oficial https://docs.whmcs.com/Custom_Fields
Para realizar essa customização você precisa OBRIGATORIAMENTE cadastrar os campos customizáveis.
É possível efetuar diversas personalizações nos campos customizáveis:
– Alteração de layout ( movimentação dos campos em locais fora do padrão );
– Validação de campos/Mascará de entrada ( utilizando programação javascript/php permite validar o campo no momento da digitação, exemplo ao digitar um CPF ele irá verificar se o mesmo é válido) ;
– E etc…
O objetivo desse post é demonstrar como alterar a exibição dos campos personalizados, por padrão os campos são exibidos no final dos campos “normais”:

Exemplo final após alteração:

O campo CPF ou CNPJ ficou acima do campo Nome, o Telefone Celular ficou abaixo do Telefone e nos campos personalizados restou apenas o campo indicação.
Realizei essas alterações no template clientregister.tpl localizado em /templates/default/
Confira o passo-a-passo:
1) Localizei a linha 152:
{foreach key=num item=customfield from=$customfields}
<div class=”control-group”>
<label class=”control-label” for=”customfield{$customfield.id}”>{$customfield.name}</label>
<div class=”controls”>
{$customfield.input} {$customfield.description}
</div></div>{/foreach}
Apliquei as alterações em negrito:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”Telefone Celular” || $customfield.name==”CPF ou CNPJ”}
{else}
<div class=”control-group”>
<label class=”control-label” for=”customfield{$customfield.id}”>{$customfield.name}</label>
<div class=”controls”>
{$customfield.input} {$customfield.description}
</div></div>{/if}{/foreach}
Simplificando, através do código acima os campos Telefone Celular e CPF ou CNPJ não devem aparecer e o demais campos que tiver irão aparecer normalmente.
Agora irei colocar o campo CPF ou CNPJ acima do campo Nome, localizo o campo firstname (linhas 31 à 36) e insiro acima o código abaixo:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”CPF ou CNPJ”}
<div class=”control-group”>
<label class=”control-label” for=”customfield{$customfield.id}”>{$customfield.name}</label>
<div class=”controls”>
<input type=”text” id=”customfield[{$customfield.id}]” name=”customfield[{$customfield.id}]” size=”20″>
</div></div>{/if}{/foreach}
Por fim localizo o campo Telefone (linhas 125 à 130) e insiro abaixo o código:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”Telefone Celular”}
<div class=”control-group”>
<label class=”control-label” for=”customfield{$customfield.id}”>{$customfield.name}</label>
<div class=”controls”>
<input type=”text” id=”customfield[{$customfield.id}]” name=”customfield[{$customfield.id}]” size=”20″> DDD + Tel
</div></div>{/if}{/foreach}
Estou disponibilizando essa personalização no link [Download não encontrado.] que servirá para sanar eventuais dúvidas.
Para facilitar o clientregister.tpl está em 3 versões dos templates ( classic, default e portal ) do WHMCS 5.1.2
Caso deseje realizar essas alterações no checkout ( cart.php ) você deve alterar o arquivo viewcart.tpl que está localizado em ( /templates/orderforms/seu_ordeform/ ).
Você gostou dessa personalização?
Tem alguma dúvida?
Faça seu comentário abaixo, obrigado!



Irado excelente.
Vlw!
Irado excelente.
Vlw!
Olá Edvan, em meu tema cada bloco é neste padrão:
{$LANG.clientareafirstname}
Sendo assim como fica a integração? já que não é padronizado com os temas que você colocou para download…
Mesmo processo, é só adaptar!
Mas e se eu estiver usando no caso o teu modulo de validacao de CPF/CNPJ, ai fica mais complexo porque pelo que olhei os campos do modulo nao correspondem ao deste tutorial, entao eu fiquei sem saber como trabalhar os campos, usando a validação.
Irá utilizar o mesmo padrão!
Entra em contato via https://suporte.edvan.com.br/ e envia o arquivo register.tpl ou viewcart.tpl e fazemos a alteração pra você!
OBS: No ticket informe a URL do WHMCS e o nome do campo CPF/CNPJ corretamente.
Olá Edvan, em meu tema cada bloco é neste padrão:
Sendo assim como fica a integração? já que não é padronizado com os temas que você colocou para download…
Mesmo processo, é só adaptar!
Mas e se eu estiver usando no caso o teu modulo de validacao de CPF/CNPJ, ai fica mais complexo porque pelo que olhei os campos do modulo nao correspondem ao deste tutorial, entao eu fiquei sem saber como trabalhar os campos, usando a validação.
Irá utilizar o mesmo padrão!
Entra em contato via https://suporte.edvan.com.br/ e envia o arquivo register.tpl ou viewcart.tpl e fazemos a alteração pra você!
OBS: No ticket informe a URL do WHMCS e o nome do campo CPF/CNPJ corretamente.
Eu já fiz o que você disse o meu não aparece minha alterações.
estou usando a versão 5.1.2
Limpa o cache do WHMCS, pasta /templates_c/ e veja se consegue ver.
Eu já fiz o que você disse o meu não aparece minha alterações.
estou usando a versão 5.1.2
Limpa o cache do WHMCS, pasta /templates_c/ e veja se consegue ver.
Minha versão e do WHMCS 5.1.2
não consigo visualizar minhas atualizações.. que fiz no registro de clientes pq ?
Funciona em qualquer versão. Se já limpou o cache e o problema persiste verifique se editou o template correto.
Eu já fiz isto e continua dando mesmo erro..
mais uma coisa…
Eu tenho que cria os campos personalizados dentro do whmcs também ou não ?
Óbvio! O campo customizável não irá aparecer como passe de mágica.
Inclusive coloquei uma observação no post:
“Para realizar essa customização você precisa OBRIGATORIAMENTE cadastrar os campos customizáveis”.
Minha versão e do WHMCS 5.1.2
não consigo visualizar minhas atualizações.. que fiz no registro de clientes pq ?
Funciona em qualquer versão. Se já limpou o cache e o problema persiste verifique se editou o template correto.
Eu já fiz isto e continua dando mesmo erro..
mais uma coisa…
Eu tenho que cria os campos personalizados dentro do whmcs também ou não ?
Óbvio! O campo customizável não irá aparecer como passe de mágica.
Inclusive coloquei uma observação no post:
“Para realizar essa customização você precisa OBRIGATORIAMENTE cadastrar os campos customizáveis”.
o modelo do meu WHMCS está setado como “Default” joguei o clientregister.tpl para dentro de /templates/default, criei os campos personalizado “Telefone Celular” e “CPF ou CNPJ” estou usando o modelo de formulário de pedido o “Ajaxcart”, apaguei tudo que tinha dentro de templates_c e mesmo assim não aparece, sabe me dizer o problema?
o modelo do meu WHMCS está setado como “Default” joguei o clientregister.tpl para dentro de /templates/default, criei os campos personalizado “Telefone Celular” e “CPF ou CNPJ” estou usando o modelo de formulário de pedido o “Ajaxcart”, apaguei tudo que tinha dentro de templates_c e mesmo assim não aparece, sabe me dizer o problema?
Desculpa pessoal, consegui resolver aqui, apareceu os campos, porém eles aparecem no fim da página logo abaixo “força da senha” o CPF ou CNPJ não está acima do nome, e o Celular não está abaixo do Telefone, pq isso?
Isso é o padrão…
Para alterar a posição você terá que customizar conforme explicado no post!
Mas os arquivos que vc postou para download já não estão alterados para o CPF ficar em cima e o telefone celular em baixo?
Sim, desde que os campos possuam o mesmo nome!
Dá uma lida com atenção no POST e você entenderá.
Edvan, já li e reli o tópico, entendi tudo perfeitamente, o problema é que eu pego o arquivo original clientregister.tpl, edito a linha 152, e jogo nele o código “{if $customfield.name==”Telefone Celular” || $customfield.name==”CPF ou CNPJ”} {else}” não me esquecendo de colocar o “{/if}” antes do “{/foreach}”, salvo o arquivo e jogo pro FTP, desta forma os campos CPF ou CNPJ e o Telefone Celular, não deveriam aparecer, certo? Pois então, eles continuam aparecendo normalmente e no mesmo lugar. Já exclui todo o conteúdo da pasta templates_c, e já limpei o cache dos 3 navegadores que uso para testes.
Faz o seguinte me envia o arquivo modificado em formato .zip e irei analisar quando possível.
Envia através do link https://suporte.edvan.com.br/
Informe também a URL do seu WHMCS.
Desculpa pessoal, consegui resolver aqui, apareceu os campos, porém eles aparecem no fim da página logo abaixo “força da senha” o CPF ou CNPJ não está acima do nome, e o Celular não está abaixo do Telefone, pq isso?
Isso é o padrão…
Para alterar a posição você terá que customizar conforme explicado no post!
Mas os arquivos que vc postou para download já não estão alterados para o CPF ficar em cima e o telefone celular em baixo?
Sim, desde que os campos possuam o mesmo nome!
Dá uma lida com atenção no POST e você entenderá.
Edvan, já li e reli o tópico, entendi tudo perfeitamente, o problema é que eu pego o arquivo original clientregister.tpl, edito a linha 152, e jogo nele o código “{if $customfield.name==”Telefone Celular” || $customfield.name==”CPF ou CNPJ”} {else}” não me esquecendo de colocar o “{/if}” antes do “{/foreach}”, salvo o arquivo e jogo pro FTP, desta forma os campos CPF ou CNPJ e o Telefone Celular, não deveriam aparecer, certo? Pois então, eles continuam aparecendo normalmente e no mesmo lugar. Já exclui todo o conteúdo da pasta templates_c, e já limpei o cache dos 3 navegadores que uso para testes.
Faz o seguinte me envia o arquivo modificado em formato .zip e irei analisar quando possível.
Envia através do link https://suporte.edvan.com.br/
Informe também a URL do seu WHMCS.
Como sempre o Evdan nos surpreende, parabéns !
Como sempre o Evdan nos surpreende, parabéns !
Edvan, Achei outro problema kkkkk, tudo funciona blz, fiz a mesma coisa no clientareadetails.tpl, para ele organizar o conteúdo, o problema é, se eu digito alguma coisa ali, ele altera sem problemas, mas não aparece o conteúdo dos campos personalizados, agora se eu removo a customização tudo funciona blz, porém os campos personalizados vão lá para baixo, saberia me dizer o porque?
Sei sim, o código tá errado!
Para esse template a customização é diferente… quebra um pouco a cabeça e você vai corrigir.
Edvan, Achei outro problema kkkkk, tudo funciona blz, fiz a mesma coisa no clientareadetails.tpl, para ele organizar o conteúdo, o problema é, se eu digito alguma coisa ali, ele altera sem problemas, mas não aparece o conteúdo dos campos personalizados, agora se eu removo o “{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”Telefone Celular” || $customfield.name==”CPF ou CNPJ”}
{else}
{$customfield.input} {$customfield.description}
{/if}{/foreach}”
Tudo funciona blz, porém os campos personalizados vão lá para baixo, saberia me dizer o porque?
Sei sim, o código tá errado!
Para esse template a customização é diferente… quebra um pouco a cabeça e você vai corrigir.
Alguem poderia me ajudar? https://forum.whmcs.com/showthread.php?55770-Show-only-field-IF-OR&p=251918#post251918
Recentemente montei uma integração similar, infelizmente não posso te ajudar pois estou comercializando [email protected]
Alguem poderia me ajudar? https://forum.whmcs.com/show…
Recentemente montei uma integração similar, infelizmente não posso te ajudar pois estou comercializando [email protected]
Olá, como eu posso fazer para remover os campos na parte de registrar?
Na verdade, remover eu sei, porém quando eu removo e faço o cadastro ele dá o seguinte erro:
Você não digitou seu Endereço (linha 1)
Você não digitou sua Cidade
Você não digitou seu Estado
Você não digitou seu CEP
São os campos que retirei.. onde tenho que retirar a mais?
E como inserir mais ?
Obrigado
Tem sim, veja ( https://docs.whmcs.com/Other_Tab#Optional_Client_Profile_Fields ) e para adicionar ( https://docs.whmcs.com/Custom_Fields )
Boa sorte!
Olá, como eu posso fazer para remover os campos na parte de registrar?
Na verdade, remover eu sei, porém quando eu removo e faço o cadastro ele dá o seguinte erro:
Você não digitou seu Endereço (linha 1)
Você não digitou sua Cidade
Você não digitou seu Estado
Você não digitou seu CEP
São os campos que retirei.. onde tenho que retirar a mais?
E como inserir mais ?
Obrigado
Tem sim, veja ( https://docs.whmcs.com/Other… ) e para adicionar ( https://docs.whmcs.com/Custo… )
Boa sorte!
Edvan, me dá um help! Veja só, segui seu tutorial e está funcionando minha validação de cpf, campo personalizado etc… porém , me deparei com o seguinte problema, se o cliente desejar modificar seus dados, os dados dos campos personalizados não estão aparecendo.
Estou editando o arquivo: clientareadetails.tpl e me perdi nisso:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”Nr/Apto”}
{$customfield.name}
{if in_array(‘nrcasa’,$uneditablefields)}{$customfield[6]}{else}{/if}
{/if}
{/foreach}
Ou seja, não estou sabendo chamar o dado já armazenado na tabela .
Agradeço a ajuda
Entra em contato com o suporte oficial da WHMCS.com
Edvan, me dá um help! Veja só, segui seu tutorial e está funcionando minha validação de cpf, campo personalizado etc… porém , me deparei com o seguinte problema, se o cliente desejar modificar seus dados, os dados dos campos personalizados não estão aparecendo.
Estou editando o arquivo: clientareadetails.tpl e me perdi nisso:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name==”Nr/Apto”}
{/if}
{/foreach}
Ou seja, não estou sabendo chamar o dado já armazenado na tabela .
Agradeço a ajuda
Entra em contato com o suporte oficial da WHMCS.com
Help-me
edvan meu amigo me socorre
Veja bem, hoje um cliente meu foi tentar se cadastra na area do cliente do meu whmcs e não conseguiu, depois que fui ver o que tava acontecendo, o whmcs não ta cadastrando pela area do cliente, pode preencher todos os campos, mas na hora que chega no campo CPF ele fica falando que Ocorreram os seguintes erros:
O campo CPF ou CNPJ é de preenchimento obrigatório
tudo está preenchido perfeitamente, mas so o CPF apresenta esse erro.
Pode me da uma luz meu amigo?
Abraço
Sugiro que restaure o template “clientregister.tpl” e desativar no configcustomfields.php ( admin ) a opção “Required Field” deste campo.
Obrigado pela rápida resposta, estou usando a Versão: 5.1.0 do whmcs, e uso o tema rackhost, mas de qualquer forma não e problema com o tema pois já tentei varios modelos e todos deram problema.
ficou do mesmo jeito eu preencho o cadastro mesmo desativado a opção de CPF e o sistema fala que o CPF é invalido, estou desesperado, pois meus cliente não podem fazer pedido, sabe dizer o que pode ser?
grande abraço
Vá na pasta /includes/hooks/ e exclua todos os hooks existentes nessa pasta ou exclua algum que tem relação com validação CPF.
Meu querido obrigado pela ajuda, eu peguei o arquivo validarcpf e modificiquei ele ficou nota 10, obrigado querido, grande abraço
Blz
Edvan eu baixei o arquivo e substituir mas ficou cm esse erro Erro de análise : erro de sintaxe, inesperado T_STRING em / home / CentrAlp / public_html / templates_c /%% 02 ^ 021 ^ 0211FB11%% clientregister.tpl.php na linha 200
eu fiz a modificação no default
o que tevo fazer?
veja https://www.central.phrhost.com/register.php
Verifique as aspas pois certamente existe um erro de sintaxe.
pois baixei direto o que postou sera que a algum erro?
Tenta refazer o procedimento e verifique a sintaxe ( aspas ) ou os customfields criado.
Sugiro que restaure o template “clientregister.tpl” e desativar no configcustomfields.php ( admin ) a opção “Required Field” deste campo.
Vá na pasta /includes/hooks/ e exclua todos os hooks existentes nessa pasta ou exclua algum que tem relação com validação CPF.
Blz
Edvan eu baixei o arquivo e substituir mas ficou cm esse erro Erro de análise : erro de sintaxe, inesperado T_STRING em / home / CentrAlp / public_html / templates_c /%% 02 ^ 021 ^ 0211FB11%% clientregister.tpl.php na linha 200
eu fiz a modificação no default
o que tevo fazer?
veja https://www.central.phrhost….
Verifique as aspas pois certamente existe um erro de sintaxe.
pois baixei direto o que postou sera que a algum erro?
Tenta refazer o procedimento e verifique a sintaxe ( aspas ) ou os customfields criado.
QUERIA PODE SABER COMO LIBERO LOJA OPENCART AUTOMATICAMENTE APOS CADASTRO DO CLIENTE
Veja https://www.whmcs.blog.br/dicas/softaculous-whmcs/
QUERIA PODE SABER COMO LIBERO LOJA OPENCART AUTOMATICAMENTE APOS CADASTRO DO CLIENTE
Veja https://www.whmcs.blog.br/di…
Edvan, é possível remover endereço, bairro, cidade, estados… qual o arquivo das validações para remover?
Mário,
Você precisa marcar/habilitar via admin o campo “Optional Client Profile Fields” e marcar os campos que você deseja que seja opcional, exemplo https://postimg.org/image/pklwjf9t1/
Depois acessar o template e editar o arquivo clientregister.tpl e remover os campos… no checkout edite o arquivo viewcart.tpl.
Não recomendo esse procedimento!
Edvan, é possível remover endereço, bairro, cidade, estados… qual o arquivo das validações para remover?
Mário,
Você precisa marcar/habilitar via admin o campo “Optional Client Profile Fields” e marcar os campos que você deseja que seja opcional, exemplo https://postimg.org/image/pk…
Depois acessar o template e editar o arquivo clientregister.tpl e remover os campos… no checkout edite o arquivo viewcart.tpl.
Não recomendo esse procedimento!
Boa tarde, existe algum codigo que faz a verificação de um cpf/cnpj ou outro campo e retorna a mensagem que este cnpj já foi cadastrado ? ou outro campo tipo Site ? Estou tendo cadastro em duplicidade por parte dos clientes.
Por padrão não tem como.
Mas existe uma customização paga que faz justamente isso https://www.edvan.com.br/financeiro/cpfcnpj.php
Boa tarde, existe algum codigo que faz a verificação de um cpf/cnpj ou outro campo e retorna a mensagem que este cnpj já foi cadastrado ? ou outro campo tipo Site ? Estou tendo cadastro em duplicidade por parte dos clientes.
Por padrão não tem como.
Mas existe uma customização paga que faz justamente isso https://www.edvan.com.br/fi…
Edvan Seria possivel solicitar um arquivo de identificação (RG OU CNH) em um campo pesonalizado na hora do cadastro?
Apenas se for o cadastro do número, arquivo digital não tem como… minha sugestão seria criar uma personalização que após o cadastro o sistema enviasse um email automático solicitando que o cliente enviasse por ticket os arquivos.
Edvan Seria possivel solicitar um arquivo de identificação (RG OU CNH) em um campo pesonalizado na hora do cadastro?
Apenas se for o cadastro do número, arquivo digital não tem como… minha sugestão seria criar uma personalização que após o cadastro o sistema enviasse um email automático solicitando que o cliente enviasse por ticket os arquivos.
Uma pequena atualização no seu código caso alguém veja e precise implementar.
Adicionar CPF depois do sobrenome, coloque o código do CPF abaixo deste:
{$LANG.clientarealastname}
{/if}
{foreach key=num item=customfield from=$customfields}
{if $customfield.name=="CPF ou CNPJ"}
{$customfield.name}
{/if}{/foreach}
Adicionar Telefone Celular depois do Telefone, coloque o código do Cel abaixo deste:
{$LANG.clientareaphonenumber}
{/if}
{foreach key=num item=customfield from=$customfields}
{if $customfield.name=="Telefone Celular"}
{$customfield.name}
DDD + Cel
{/if}{/foreach}
Boa sorte e obrigado Edvan.
Excelente… só lembrando que após efetuar essa customização você obrigatoriamente precisa remover o código padrão do final da página ou declarar ambos campos como em branco.. caso contrário ficará duplicado.
Bem lembrado, coloquei o final do código conforme usei aqui para não duplicar os campos. Também consegui validar o campo de cpf com javascript que valida o CPF/CNPJ e formata o valor ao mesmo tempo. Se alguém quiser o código é simples implementar vlw Edvan
Blz
Agora sim!
Uma pequena atualização no seu código caso alguém veja e precise implementar.
Adicionar CPF depois do sobrenome, coloque o código do CPF abaixo deste:
{/if}
{foreach key=num item=customfield from=$customfields}
{if $customfield.name=="CPF ou CNPJ"}
{/if}{/foreach}
Adicionar Telefone Celular depois do Telefone, coloque o código do Cel abaixo deste:
{/if}
{foreach key=num item=customfield from=$customfields}
{if $customfield.name=="Telefone Celular"}
{/if}{/foreach}
Os campos abaixo no final da página onde eram os customfield podem ser removidos ou declarados em branco como no exemplo do Edvan
Coloque o código abaixo deste:
{foreach key=num item=customfield from=$customfields}
{if $customfield.name=="Telefone Celular"}
{/if}{/foreach}
{if $customfields}
{foreach from=$customfields key=num item=customfield}
{if $customfield.name=="Telefone Celular" || $customfield.name=="CPF ou CNPJ"}
{else}
{/if}
{/foreach}
Boa sorte e obrigado Edvan.
Excelente… só lembrando que após efetuar essa customização você obrigatoriamente precisa remover o código padrão do final da página ou declarar ambos campos como em branco.. caso contrário ficará duplicado.
Bem lembrado, coloquei o final do código conforme usei aqui para não duplicar os campos. Também consegui validar o campo de cpf com javascript que valida o CPF/CNPJ e formata o valor ao mesmo tempo. Se alguém quiser o código é simples implementar vlw Edvan
Blz
Agora sim!