Falha do envio em lote de e-mails de notificação + módulo gerencianet
Tagged: email, envio em massa, erro500, whmcs
- This topic has 13 replies, 4 voices, and was last updated 7 years, 10 months ago by Gofas.
- AutorPosts
- 03/01/2017 at 15:15 #8457Luis AugustoParticipant
Boa tarde,
durante o uso do módulo percebi um comportamento estranho no processo de envio de e-mails em lote. Primeiramente ao tentar enviar lembretes de fatura manualmente para mais de uma fatura em aberto por exemplo, percebi que é retornado erro 500. Ao verificar o log do apache/php me deparei com o seguinte código de erro:
Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Fatal error: Cannot redeclare ggnb_calculate_fine_interest() (previously declared in /var/www/vhosts/gamazonhost.com/httpdocs/modules/gateways/gofasgerencianetboleto/params.php:598) in /var/www/vhosts/gamazonhost.com/httpdocs/modules/gateways/gofasgerencianetboleto/params.php on line 598
Logo fui a fundo verificar e vi que apenas 1 e-mail do grupo que selecionado para ser disparado esta sendo enviado ao cliente. Esse problema também ocorre com o Cron diário que processa as rotinas de disparos de e-mails aos clientes.
Para te certeza que não se tratava de um erro do WHMCS, desativei o módulo do Gerencianet e setei outro módulo de pagamentos. Para minha surpresa, funcionou perfeitamente o envio. Já quebrei a cabeça para entender o que pode estar causando esse erro mas não consegui.
Gofas ou alguém com bom conhecimento no módulo, podem ajudar?
- 03/01/2017 at 15:21 #8458Luis AugustoParticipant
Para constar refiz todo o processo de instalação para ter certeza que o problema não esta relacionado com alguma inconsistência na transferência de arquivos. Infelizmente o problema persiste.
- 03/01/2017 at 15:40 #8460GofasKeymaster
Gratidão Luis!
Um usuário havia me reportado esse erro antes, mas como não tinha mais informações eu não pude simular o erro,
agora com o log do servidor eu sei a causa e a solução, acontece apenas se configurar juros e multa e no caso de Faturas com mais de um item no descritivo. Vou corrigir e explico melhor assim que atualizar e testar. - 03/01/2017 at 17:21 #8463Luis AugustoParticipant
Obrigado Maurício,
acredito que vai ajudar outros usuários. Alguns talvez não tenha percebido ainda este comportamento por não acompanharem os logs do Cron. Fico aguardando ansioso novidades :)
- 06/01/2017 at 08:48 #8487Luis AugustoParticipant
Bom dia,
vi que lançou a versão 0.25 do módulo aparentemente para corrigir essa questão anterior. Mas mesmo fazendo a atualização o erro persiste. Continua retornando:
Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Warning: Invalid argument supplied for foreach() in /var/www/vhosts/gamazonhost.com/httpdocs/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 Fatal error: Cannot redeclare ggnb_calculate_fine_interest() (previously declared in /var/www/vhosts/gamazonhost.com/httpdocs/modules/gateways/gofasgerencianetboleto/params.php:680) in /var/www/vhosts/gamazonhost.com/httpdocs/modules/gateways/gofasgerencianetboleto/params.php on line 680
Alguma sugestão do que posso fazer para corrigir o problema? Pois meu CRON quando roda está enviando apenas o primeiro e-mail “programado” e os demais não são enviados. Isso esta ocorrendo tbm quando tento mandar um lote de vários lembretes manualmente.
- 09/01/2017 at 10:26 #8508Luis AugustoParticipant
Bom dia Gofas,
alguma novidade sobre essa questão? Vi em uma outra resposta que houveram ajustes na versão 0.25. Fiz novamente a atualização do módulo mas o problema que relatei persiste.
Como esta afetando o envio de e-mails, esta comprometendo muito o uso do WHMCS. Fiz novamente testes com um módulo anterior de boletos sem registro que usava e o problema não ocorreu.
Poderia dar uma força para esta situação?
- 09/01/2017 at 15:48 #8510GofasKeymaster
Boa tarde Luis,
durante a última atualização tentamos simular o erro de várias formas, realizamos testes com diversas configurações diferentes, faturas com valores, descontos, taxas, juros, multa variados, cadastros de clientes com informações diferentes, como por ex pessoa física e jurídica, etc, etc, etc… corrigimos bugs que foram reportados e que não foram reportados, incompatibilidades e optimizamos várias trechos dos códigos, mas em nenhuma situação ocorreu esse erro.Traduzindo o erro de forma humanamente entendível:
Erro:"Fatal error: Cannot redeclare ggnb_calculate_fine_interest() (previously declared in /modules/gateways/gofasgerencianetboleto/params.php:680"
Tradução:"Você não pode declarar uma nova função com o nome ggnb_calculate_fine_interest pois ela já foi declarada na linha 680 do arquivo params.php"
O que está acontecendo com o seu whmcs é que uma ou mais faturas possui(em) alguma configuração específica, que relacionadas às configurações do módulo e às do WHMCS forçam o módulo definir dois cálculos de juros e multa diferentes para a mesma fatura.
Para diagnosticar e corrigir, por favor, desative todos os seus outros módulos, addons e hooks, rode o cron e nos envie:
1) captura de tela mostrando todas as configurações do módulo;
2) captura de tela mostrando as configurações de campos personalizados do cliente;
3) captura de tela da(s) fatura com erro, acesse uma a uma das faturas geradas, nesse ponto, provavelmente você irá se deparar com a fatura “defeituosa”;
4) O log de erros do servidor novamente, pois devido às últimas atualizações provavelmente o erro não está mais na linha 680;
5) qualquer outra informação que possa ajudar e o máximo de detalhes possíveis.Dicas adicionais:
1) uma forma simples e prática de rodar todas as tarefas cron do whmcs é acessar o urlhttps://meuwhmcs.com/crons/cron.php?command=all&options=force
;
2) mantenha e exibição de erros ativa conforme explicado aqui;Agradeço muito pelo feedback e ajuda nos testes, ultrapassando esse pequeno desafio estaremos prontos para partir para novas ideias e gerar mais valor para todos!
- 09/01/2017 at 18:10 #8514Luis AugustoParticipant
Boa tarde Gofas,
primeiramente obrigado pela atenção ao meu problema. Vamos lá:
Pasta com os prints: https://www.dropbox.com/sh/e1c0xbju7zdohl1/AADPRQqiaOA7qCqB52FmyeS6a?dl=0
1. Tela 01 – Configuração do módulo
2. Tela 02 – Configuração campos personalizados
3. Tela 03 – Erro na fatura após Debug do WHMCS ativado
4. Tela 04 – Erro ao tentar enviar mais de 1 lembrete de fatura
5. Tela 05 – Log do WHMCS mostrando que apenas o primeiro e-mail da lista dos lembretes foi enviadoAlgumas observações importantes:
1. Esse comportamento de erro só acontece quando preciso fazer algum envio de e-mail em lote. seja lembretes de fatura manuais, seja o CRON que roda e tem que gerar faturas ou notificações de atraso. Nos logs consta sempre que apenas 1 dos clientes foi notificado. Ou seja, numa lista de 10 notificações apenas a primeira é realizada. Este “único” e-mail enviado chega normalmente e consigo fazer a emissão normal da fatura. Se for enviando o lembrete cliente por cliente (e-mail por e-mail), funciona perfeitamente. Este comportamento só ocorre em e-mails que usam valores financeiros. Meus e-mails e suporte estão funcionamento normalmente.
2. Estou usando modelos de e-mail personalizados para auto-login, inclusive com a solução proposta aqui mesmo no site.
3. O debug do WHMCS esta ativo para eventuais análises.
Aguardo ajuda
- 16/01/2017 at 16:45 #8529Luis AugustoParticipant
Boa tarde,
alguem poderia me dar uma luz sobre a questão?
- 18/01/2017 at 01:52 #8531GofasKeymaster
Boas notícias, corrigimos isso na versão 0.2.6.
Os módulos PayPal Plus e Gerencianet Cartão também foram atualizados para evitar a mesma falha. - 19/01/2017 at 13:52 #8544NicolasParticipant
Olá,
Estou usando a versão mais atual do WHMCS e também do módulo dos boletos, o erro ainda aparece no arquivo “error_log” que fica na raiz do WHMCS….
[19-Jan-2017 12:08:06 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:08:06 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0 [19-Jan-2017 12:23:59 America/Sao_Paulo] PHP Warning: Invalid argument supplied for foreach() in /path/public_html/vendor/whmcs/whmcs-foundation/lib/View/Formatter/Price.php on line 0
Será que este erro ainda tem a ver com o módulo ou seria outra coisa?
- 19/01/2017 at 19:46 #8546GofasKeymaster
Aparentemente não está relacionado a nenhum módulo específico, podem ser as configurações de moeda do WHMCS que estão causando algum conflito.
A pesquisa sobre esse erro mostra muitas possibilidades, como nesse post do portal do host.Se você usa os nossos Módulos PayPal Plus e Gerencianet Cartão (beta) eles também foram atualizados para impedir o mesmo erro, atualize-os se eles estiverem instalados.
- 22/01/2017 at 21:12 #8548Cristian Roberto da LuzParticipant
Eu estava com o mesmo problema. Depois que fui nas configurações gerais / outros e desmarquei os checkbox abaixo, ficou tudo ok!
Exibir erros Tick to enable PHP Error Reporting (Do not leave enabled in live use)
Modo de depuração de SQL Tick to enable logging of SQL Errors (Enable only if instructed)- 24/01/2017 at 16:01 #8591GofasKeymaster
Pode crer! Descobrimos que é um bug do WHMCS, o suporte do software não disse que é nem que não é, apenas instruíram a fazer o mesmo, desativar os avisos de erro.
- AutorPosts
- You must be logged in to reply to this topic.