Quando uma assinatura é criada, um pedido é gerado. E quando ela é renovada no próximo ciclo, um novo pedido é criado até que ela seja pausada ou cancelada.
O processamento dos pagamentos de novas assinaturas é feito por uma tarefa agendada (cron) que é executado de acordo com a Frequencia de processamento definido nas configurações do plugin.
No entanto, para fins de teste ou debug, o desenvolvedor pode forçar a execução desta tarefa usando o WP-CLI com o comando abaixo.
wp cron event run rm_pagbank_cron_process_recurring_payments
O comando acima irá processar os pedidos recorrentes que estão ativos e que a data da próxima cobrança é igual ou anterior ao dia e hora atual. Isso também irá criar uma nova cobrança e gerar um novo pedido para cada assinatura.
Cancelamentos agendados
Disponível a partir da versão 4.25.0.
Pedidos que estão aguardando cancelamento (PENDING_CANCEL) são processados uma vez ao dia.
Para forçar o processamento, rode o comando abaixo com WP-CLI.
wp cron event run rm_pagbank_cron_process_recurring_cancellations
Este comando também removerá o acesso de conteúdos restritos eventualmente associados a estas assinaturas.
Resolução de problemas
Erro crítico
Caso o plugin encontre algum problema durante este processo, uma mensagem de erro será exibida no terminal, indicando que há um erro em seu site.
Este erro será logado em wp-content/uploads/wc-logs/fatal-errors-YYYY-MM-DD-xyz.log
ou no arquivo de log do nosso plugin. Veja mais aqui.
Se o problema foi causado por nosso plugin ou algo que poderíamos evitar, por favor entre em contato conosco e nos envie o arquivo de log.
Cron não funciona
Você pode usar plugins de gerenciamento de cron como WP Crontrol para ver as tarefas agendadas de seu WordPress/Woo, e buscar pelas tarefas relacionadas à recorrência, como mostrado abaixo.
Motivos para o cron não estar rodando:
- É necessário que a recorrência do plugin esteja ativa (em PagBank > Configurações > Recorrência)
- Sites de baixo tráfego podem não acionar o event runner com frequência suficiente
- Um erro fatal causado por um plugin ou tema pode quebrar o event runner. Veja wp-content/uploads/wc-logs/fatal-errors*.log para detalhes.
- Um plugin ou tema pode quebrar o event runner intencionalmente ou não
- BasicAuth, um firewall, proteção por senha ou outras restrições de acesso podem bloquear o event runner
- Um problema com sua hospedagem na web ou servidor web pode quebrar o event runner
- Eventos de longa duração podem bloquear temporariamente o event runner
- Sites de alto tráfego podem sofrer de problemas de processamento sequencial que bloqueiam o event runner
- A constante de configuração DISABLE_WP_CRON está definida, mas nenhum cron runner alternativo foi colocado em prática
- Um cron runner alternativo está em prática, mas não está funcionando como esperado ou travou
Nossa recomendação é que você tenha um cron configurado do lado do servidor e não dependa apenas do tráfego do seu site para ter suas tarefas agendadas executadas.
Neste link (tradução) você encontra uma série de dicas de como debugar e entender seu cron.
Comentários
0 comentário
Por favor, entre para comentar.