MemberMouse 3.0+
OBSERVAÇÃO: Com serviços de pagamento que não suportam a funcionalidade de cartão em arquivo (ou seja, PayPal, Authorize.net), o MemberMouse não tem controle sobre o processo de cobrança recorrente e não tratar automaticamente os pagamentos em atraso.
Por padrão, o MemberMouse tem um processo de cobrança integrado para a cobrança de pagamentos em atraso. Se uma assinatura não for cobrada na data programada, o MemberMouse fará três tentativas adicionais no período de uma semana para cobrar o pagamento. O MemberMouse também enviará uma mensagem configurável notificação de pagamento em atraso após cada pagamento não realizado. Se você quiser ver uma descrição detalhada desse processo, acesse nosso artigo Tratamento automatizado de pagamentos em atraso.
Você pode ajustar os tempos entre cada tentativa de cobrança, mas as três tentativas não podem ser alteradas. Esse é um número fixo.
Embora esse intervalo de coleta funcione muito bem como padrão, talvez você queira personalizar os dias decorridos entre uma tentativa de coleta e a duração do processo geral de coleta. É possível personalizar isso usando um filtro do WordPress, mm_billing_subscription_dunning_interval.
Os filtros são funções pelas quais o WordPress passa os dados em determinados pontos da execução, pouco antes de realizar alguma ação com os dados. O MemberMouse define seu próprio conjunto de filtros que você pode utilizar para controlar o fluxo de execução no MemberMouse antes de determinadas ações serem tomadas.
Aqui está um exemplo básico:
function customContentProtection($data)
{
return true;
}
add_filter('mm_bypass_content_protection', 'customContentProtection');
Neste exemplo, estamos usando o add_filter() para indicar que o método customContentProtection() deve ser chamado quando o MemberMouse aplicar o método mm_bypass_content_protection filtro.
Para saber mais sobre como trabalhar com a API de ação do WordPress leia este artigo.
Personalização dos intervalos de cobrança
O MemberMouse passa dois argumentos para sua função. O primeiro é um número inteiro $failureInterval
que representa o número padrão de dias antes da próxima tentativa. O segundo é um número inteiro $failureState
que representa o estado de falha de faturamento específico. Atualmente, existem três estados de falha: 2, 3 e 4, que representam a segunda, a terceira e a última tentativa de cobrar o pagamento, respectivamente.
Sua função deve retornar um número inteiro que represente o número de dias que deve ser permitido passar antes da próxima tentativa. Aqui está um exemplo que replica os intervalos de cobrança padrão:
function customDunningInterval($failureInterval, $failureState)
{
switch ($failureState)
{
case 2:
return 2; // Primeira tentativa, dois dias após a falha inicial de cobrança
case 3:
return 3; // Segunda tentativa, três dias após a primeira tentativa
Caso 4:
return 2; // Terceira tentativa, dois dias após a segunda tentativa
padrão:
return $failureInterval;
}
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2);
Para personalizar os intervalos de cobrança, basta alterar os valores retornados nas três instruções de caso para a duração desejada em dias.
Portanto, se você quisesse tentar novamente o pagamento 3 dias, 5 dias e 7 dias após cada tentativa, você alteraria a função para que ficasse assim:
function customDunningInterval($failureInterval, $failureState)
{
switch ($failureState)
{
case 2:
return 2; // Primeira tentativa, três dias após a falha inicial de cobrança
case 3:
return 3; // Segunda tentativa, cinco dias após a primeira tentativa
Caso 4:
return 2; // Terceira tentativa, sete dias após a segunda tentativa
padrão:
return $failureInterval;
}
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2);