Atualizando Vencimento de Faturas

Olá pessoal, você sabe o que é um Hook para WHMCS? Um hook ou  "gancho" permite que você crie funcionalidades apartir de eventos ou ações específicas que ocorrem dentro do WHMCS, existe cerca de 100 "ganchos" e você pode tem infinitas possibilidades de utilização.  Exemplo, por padrão o WHMCS não consegue determinar que o vencimento das faturas ocorram sempre em dias úteis ( segunda à sexta ) e agora? Alterar manualmente cada fatura? Não, utilizando o hook correto é possível alterar automaticamente!

Neste exemplo utilizei o hook InvoiceCreationPreEmail que é "chamado" quando uma nova fatura for gerada via Cron Job ou através do OrderForm ( formulário de pedido ).

Para auxiliar a implementação desse hook utilizei/modifiquei uma função que calcula o próximo dia útil da data de vencimento da fatura (invoice).

Faça o download do Hook Ajustes Fatura e descompacte, envie o arquivo hook_ajusta_fatura.php para pasta /includes/hooks/ do seu WHMCS.

Para que o hook funcione confira se a configuração No Invoice Email on Order localizada em Setup  > General Settings > Ordering tab não esteja marcada conforme imagem abaixo:

Configurações

Essa ideia foi executada através de um post no fórum Portal Do Host.

Pronto, agora as faturas sempre cairão na segunda-feira... essa hook dá margem para criar uma personalização para evitar os feriados ( só utilizar a imaginação ou melhor a programação) kkk

Se quiser fazer uma doação ( não ficarei constrangido) apesar de saber que as chances são remotas kkk.

Empresas que fizeram doação:

- Cristian - http://taxiweb.ag

Gostou? Comente!

Atualização 01/02/2013

2 usuários relataram que após envio do hook a cron job ficou oscilando em não enviar avisos de cobrança! Se esse mesmo problema ocorrer com você basta excluir o arquivo. Acredito que exista algum bug na função InvoiceCreationPreEmail

Edvan

Proprietário da Edvan.com.br, referência em WHMCS no Brasil através de consultorias e desenvolvimento de produtos/serviços para WHMCS.

You may also like...

  • Edvan, como fica a suspensão dos serviços? O tempo de suspensão é conforme a data da fatura?

    • Qual relação com o hook? Nenhuma... esse hook vai funcionar apenas quando a CRON JOB gerar novas faturas ou quando o cliente efetuar um novo pedido.

  • redirect

    edvan, me tire uma dúvida: como o whmcs vai enviar o email de cobrança se a opção "No Invoice Email on Order" estiver desativada?

    • Essa opção tem que tá desativada mesmo. Você se passou na tradução... "No Invoice Email on Order" "Tick this box to not send an invoice due notice when new orders are placed"

      • redirect

        no tradutor: "Não Email fatura em ordem" "Marque esta caixa para não enviar um aviso de vencimento da fatura quando novas encomendas são colocadas"

        • Não pode traduzir ao pé da letra... o correto é não marcar = irá enviar o e-mail.

  • Edvan, obrigado pela contribuição!

  • deguir

    Show, obrigado demais!

  • Obrigado, corrigido!

  • não estou mais recebendo os e-mails de cron depois que habilitei este hook!

    • Jefferson,

      Nos testes realizados ( cerca de 15x ) no meu WHMCS de testes não deixei de receber o "WHMCS Cron Job Activity" nem os demais avisos pós cron ( http://clip2net.com/s/2HPbi )

      Acabei de efetuar um pedido de testes (13/01) e a fatura teve o vencimento corrigido ( http://clip2net.com/s/2HPco ) automaticamente pelo hook.

      Vou te dá uma dica, habilite o debug no configuration.php e rode a cron manualmente no navegador e veja se surge algum erro.

      Ou se não puder fazer isso exclua o hook já que você supõe que seja ele.

      Pela experiência adquirida ao longo dos tempos o que geralmente ocasiona o não recebimento do " WHMCS Cron Job Activity" pode ser:

      - Configurações de SMTP;
      - Email caindo no spam/lixo eletrônico;
      - Módulo de pagamento corrompido ou desativado;
      - Estouro de memória do PHP;
      - E etc...

      Boa sorte!

  • Ótima dica, Edvan.
    Você pode fazer um post mostrando como colocar um banner ou mensagem para o cliente que vai finalizar um pedido? Gostaria de colocar um banner acima de "Novo Cliente/Sou Cliente", muitos acabam se cadastrando no sistema e tendo vários cadastros :(. Qual arquivo devo editar?

    • Vlw.

      Fazer post? Tá estranho seu pedido!

      Verifique o arquivo clientregister.tpl ou o template orderform, arquivo viewcart.tpl

      • Obrigado pela resposta, Edvan.
        Funcionou Perfeitamente!

  • Edvan,o hook não está funcionando em meu WHMCS. eu efetuo um contratação, a fatura cai para vencimento no domingo, dia 20, e não para segunda 21.

    • Explica melhor como você tá fazendo... você efetua como? Via admin ou logado como cliente?

      Se você estiver logado no painel como cliente ( http://clip2net.com/s/2J1lj ) funcionará... se estiver efetuando o pedido dentro do admin ( http://clip2net.com/s/2J1kp ) realmente não irá funcionar!

      Para que o hook funcione confira se a configuração No Invoice Email on Order localizada em Setup > General Settings > Ordering tab não esteja marcada.

      Verifique também se a data do servidor está correta.

      Se os itens acima estiverem OK e não está funcionando é algum bug no WHMCS, entre em contato com o suporte oficial da WHMCS.com

      Boa sorte!

  • Guest

    Olá Edvan, só mesmo para confirmar: quem utilize o sistema de datas DD/MM/YYYY" deve comentar a linha 18 e habilitar a linha 20, no arquivo hook?

    • Não... pois internamente ( banco de dados do whmcs ) o formato é sempre AAAA-MM-DD.

  • juliolobo

    Eu recebi o seguinte erro do cron

    Fatal error: Cannot redeclare proximoDiaUtil() (previously declared in /home/segviewr/public_html/painel/includes/hooks/hook_ajusta_fatura.php:17) in /home/segviewr/public_html/painel/includes/hooks/hook_ajusta_fatura.php on line 17

    • Vou analisar com calma e se for o caso monto uma nova função!

    • juliolobo

      Resolvi o problema!
      Retirei toda a função proximoDiaUtil de dentro da função hook_ajusta_vencimentofatura
      Assim funcionou perfeitamente!
      Os vencimentos que seriam dia 10 foram para o dia 11 automaticamente.
      Parabéns pelo Blog e pelos HOOKs publicado.
      A Comunidade agradece.

      • E você colocou a função aonde?

        • juliolobo

          Antes da função hook_ajusta_vencimentofatura

        • Mas o correto é isso mesmo, fora!

        • juliolobo

          Baixei aqui no Blog e tá dentro, por isso dava erro.
          Quando fiz o download e implementei eu estava no escritório. Fiz o download em casa também e estava igual. Ae comentei aqui.
          Depois com mais calma analisei o código e vi função dentro de função e tirei. Mas agora tá ok!
          Vlw Edvan! Forte abraço!

        • O código que envie tava errado!

          Fiz o ajuste e coloquei uma restrição para quem tentar acessar o hook via navegador.

          Faça o download em https://www.whmcs.blog.br/wp-content/plugins/download-monitor/download.php?id=79

          Obrigado pelo alerta!

  • Brinsley P. Aragão

    Comigo aqui vários clientes relatam nao envio de emails de cobranca, nao envio de redefinicao de senha, e outros pontos.

    • Então sugiro que remova o hook e faça as alterações na mão grande.

  • Não importa a versão.

  • Cleiton

    Aonde faço o download ?

  • Vlw.

  • Henrique Schiavo

    é legal usar isso com o boleto que calcula juros e multa, já que ele não vai deixar gerar faturas em fins de semana e assim não precisa fazer a personalização no boleto pra não calcular juros em boletos vencidos em fins de semana.

  • Henrique Schiavo

    se for o caso de calcular juros por dia, também vai perder a atualização dos dias desde o vencimento original.

    Exemplo: se um boleto que têm seu vencimento original em 01/08/2015 (sábado) e ele for ajustar automaticamente para 03/08/2015 (segunda) e o cliente não pagar na segunda, o cálculo de juros será de 03/08/2015 e não da data original em 01/08/2015, ou seja, o cliente vai deixar de pagar 2 dias de juros.

    • Faça um teste, se funcionar ótimo!

  • Henrique Schiavo

    Ola Edvan, Você tem algum valor para quem quer comprar a opção de feriados?

Scroll Up