-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Corrige data de próximo pagamento e desabilita renovação automática de pedido do WC Subscriptions #102
Corrige data de próximo pagamento e desabilita renovação automática de pedido do WC Subscriptions #102
Conversation
para assinaturas do Vindi
- Corrigida função de atualizar próximo pagamento para buscar a subscription do Vindi e usar a data correta
…o fix/data-proximo-pagamento
Olá pessoal, Quanto às assinaturas com período diferente da data de cobrança entendo que fazem sentido para o sistema (Vindi), mas não sei exatamente como lidar com elas em um site com assinaturas mensais sendo que o cliente teria sua assinatura suspensa e teria que aguardar vários dias até a próxima cobrança que liberaria ela novamente. |
@cristian-rossi posso realizar algumas alterações bem simples no seu PR? 😬 |
Claro, se precisar conversar sobre algo específico estou à disposição. |
@cristian-rossi obrigado 😄 Se eu entendi corretamente; No webhook de fatura paga o Next Payment será alterado para o valor correto, porém o hook automático de geração de pedido no WooCommerce não será executado é isso? |
Exato. Como a data estava incorreta acontecia do WC Subscriptions suspender a assinatura e gerar o pedido muito antes da próxima fatura/pagamento (em casos que o período da assinatura não condiz com a data de pagamento). Mais especificamente em: Nesse PR a proposta é corrigir essa data (informando corretamente o cliente no frontend). A segunda proposta é mais para consistência do funcionamento da assinatura desabilitando o action acima (somente para assinaturas Vindi). |
Iremos realizar os testes para adicionar esse PR 😄 |
Motivação
A data de próximo pagamento usada no webhook
bill_created
não é a data correta de próximo pagamento sendo que essa data não está disponível nos dados desse webhook, estando somente disponível na busca da assinatura em/subscriptions/{id}
(depois da fatura paga).Isso acarreta que a data visualizada pelo cliente no site não é a data efetiva da próxima cobrança do Vindi.
Outro problema em que essa data interfere é: quando é atualizada em
Vindi_Webhook_Handler->update_next_payment
o WC Subscriptions ajusta seu schedule para preparar o pedido de renovação da assinatura na data de final do período + 3 dias. Ocorre que podem existir assinaturas com períodos diferentes da data de cobrança.Exemplo: assinatura com período entre 23/09/2018 - 22/10/2018 e data de cobrança 04/10/2018.
Na próxima cobrança (04/10) o hook
bill_created
cria o pedido de renovação e ajusta onext_payment
para 22/11 + 3 dias, exibindo para o cliente o dia 25/11 mas ele só será cobrado no dia 04/11.No dia 25/11 o WC Subscriptions irá criar o pedido de renovação e suspender a assinatura, aguardando a fatura/pagamento que ocorrerá somente no dia 04/11 (que é quando os hooks do plugin fariam esse trabalho).
Solução Proposta
update_next_payment
no hookbill_paid
buscando na API a assinatura e utilizando a data correta de próximo pagamento.WC_Subscriptions_Manager::prepare_renewal
quando estiver lidando com uma assinatura da Vindi deixando todo o controle para os webhooks.