Oi, @mastababa. Tudo bom?
Veja se o artigo Como saber se a assinatura está ativa para produtos digitais? ajuda.
O método \RM_PagBank\Helpers\Recurring::getStatusFromOrder também pode ajudar.
Qualquer coisa é só falar.
Grande abraço e sucesso nas vendas.
PS: Se estiver gostando do plugin e tiver 2 minutinhos, deixa um review ⭐️⭐️⭐️⭐️⭐️ pra ele >aqui<.️️️️️️️️ Nos esforçamos bastante para mantê-lo, e seu review nos ajuda bastante. 🙂
Obrigado, Ricardo, mas isso não está funcionando para mim:
Fatal error: Uncaught Error: Call to undefined function RM_PagBank\Helpers\Recurring()
Oi, @mastababa .
Não tenho certeza se você fez a chamada da forma correta, mas o certo seria algo como:
use RM_PagBank\Helpers\Recurring;
$status = Recurring::getStatusFromOrder($order);
echo "<h1>Status da assinatura: $status</h1>";
Se isso gerar erro, certifique-se de estar usando uma versão recente do nosso plugin.
Eu tenho isso:
60: use RM_PagBank\Helpers\Recurring;
61: $order_id = 130;
62: $order = wc_get_order( $order_id );
63: $status = Recurring::getStatusFromOrder($order);
64: echo "<h1>Status da assinatura: $status</h1>";
Agora:
Fatal error: Uncaught Error: Non-static method RM_PagBank\Helpers\Recurring::getStatusFromOrder() cannot be called statically … on line 63
Falha minha. Não percebi que não era método estático.
Nesse caso faça:
use RM_PagBank\Helpers\Recurring;
$helper = new Recurring();
$status = $helper->getStatusFromOrder($order);
echo "<h1>Status da assinatura: $status</h1>";
Obri. Isso não retorna um erro. Porém, isso também não parece funcionar como esperado.
Quando uso isso para um pedido de um produto que não é recorrente, ainda recebo a resposta “Ativo”.
Quando verifico o status de um pedido relacionado a uma assinatura cancelada, também recebo “ativo”.
Parece-me que essa função retorna o status do pedido, não da assinatura.
Também observo que, quando um usuário cancela uma assinatura, a assinatura é revertida para “cancelamento pendente”. Como o cancelamento se torna definitivo?
Oi, @mastababa
De fato isso só deve ser usado em pedidos recorrentes.
Você pode fazer um
if($order->get_meta('_pagbank_is_recurring') > 0 || $order->get_meta('_recurring_cycle') > 0)
pra ver se o pedido é recorrente ou não.
Obri. Isso parece funcionar.