MemberMouse 3.0+
OBSERVAÇÃO: With payment services that don’t support card-on-file functionality (i.e. PayPal, Authorize.net), MemberMouse has no control over the recurring billing process and 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 after each failed payment. If you’d like to review a detailed description of this process, go to our article 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.
Here’s a basic example:
function customContentProtection($data)
{
return true;
}
add_filter('mm_bypass_content_protection', 'customContentProtection');
In this example, we’re using the add_filter() para indicar que o método customContentProtection() deve ser chamado quando o MemberMouse aplicar o método mm_bypass_content_protection filtro.
To learn more about working with WordPress’ Action API 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.
Your function should return an integer representing the number of days that should be allowed to elapse before the next attempt. Here’s an example that replicates the default dunning intervals:
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);

