fbpx

Filtros do MemberMouse para WordPress

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.

Referência do filtro MemberMouse

A seguir, há uma lista de todos os filtros do MemberMouse, uma descrição de quando eles são executados e informações sobre os dados que serão passados para qualquer função conectada ao filtro.

Intervalo de varredura de faturamento

mm_billing_scan_intervalo

MemberMouse 3.0+

O MemberMouse executa periodicamente um WP-Cron que verifica as assinaturas que devem ser cobradas novamente e as coloca na fila para processamento pelo sistema de faturamento local. Por padrão, as varreduras são realizadas a cada 15 minutos. Esse filtro permite modificar o intervalo entre as varreduras, o que pode ser útil para otimizar o desempenho do seu site.

O plug-in passa um único argumento $scanIntervalo para sua função, um número inteiro que representa o número padrão de minutos entre as varreduras. Sua função deve retornar um número inteiro que represente os minutos desejados entre as varreduras. Por exemplo, o seguinte fará a varredura de assinaturas que estão prontas para cobrança uma vez a cada cinco minutos:


function customBillingScanInterval($scanInterval)
{
   return 5;
}
add_filter("mm_billing_scan_interval", "customBillingScanInterval", 10, 2);

Intervalo de cobrança da assinatura

mm_billing_subscription_dunning_interval

MemberMouse 3.0+

Se uma assinatura não for cobrada na data programada, o MemberMouse fará três tentativas adicionais para cobrar o pagamento. Esse filtro permite que você controle o intervalo entre as tentativas.

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.


Acesso a blocos

mm_block_access

Esse filtro é aplicado depois que o MemberMouse determina que o visitante atual tem acesso ao conteúdo e permite que você bloqueie seletivamente o acesso ao conteúdo protegido.

O MemberMouse passa um valor booleano $blockAccess para sua função, indicando se ela bloqueará o acesso ao conteúdo por padrão. Sua função deve retornar um booleano indicando se o MemberMouse deve bloquear o acesso ao conteúdo.

Por exemplo, para bloquear o acesso de todos os membros ao conteúdo protegido:


função blockMemberAccess($blockAccess)
{
   return true;
}
add_filter("mm_block_access", "blockMemberAccess", 10, 2);

Contornar a proteção de conteúdo

mm_bypass_content_protection

Esse filtro é aplicado depois que o MemberMouse determina que o visitante atual não tem acesso ao conteúdo e permite que você ignore seletivamente a proteção do conteúdo.

O MemberMouse passa um valor booleano $allowAccess para sua função, indicando se ela fornecerá acesso ao conteúdo por padrão. Sua função deve retornar um booleano indicando se o MemberMouse deve permitir o acesso ao conteúdo.

Por exemplo, o seguinte permitirá que qualquer membro que tenha recebido a atribuição de Colaborador acesso de função a todas as páginas e postagens protegidas:


função allowAccessForContributors($allowAccess)
{
    if (current_user_can("contributor"))
    {
        return true;
    }
    else
    {
        return $allowAccess;
    }
}
add_filter("mm_bypass_content_protection", "allowAccessForContributors", 10, 2);

Observe que, embora esse filtro forneça acesso a páginas e postagens que, de outra forma, seriam inacessíveis, ele não afeta a análise das SmartTags de decisão.


Redirecionamento de login

mm_login_redirect

Esse filtro é aplicado antes de o MemberMouse executar seu comportamento padrão de redirecionamento de login, que é configurado em Configurações da página inicial do membro. Retorna um URL para indicar que o MemberMouse deve redirecionar o usuário para esse URL. Retorne uma string vazia para indicar que o MemberMouse deve usar suas próprias regras internas para determinar para onde o usuário deve ser enviado.

O objeto passado para a sua função contém o URL para o qual o MemberMouse redirecionará o usuário se você não retornar um URL de substituição e um objeto de usuário que contém dados sobre o usuário conectado.
Se o nome do objeto em sua função for $infoObj então você acessará os dois elementos de dados da seguinte forma:

$infoObj->currentUrl
$infoObj->user

Descritor de declaração de listras

mm_stripe_billing_statement_descriptor

Quando o MemberMouse inicia uma cobrança, ele envia vários dados descritivos sobre a cobrança. O descritor do extrato é o que será exibido para o cliente na fatura do cartão de crédito e também é visível no Stripe. Esse filtro permite que você personalize o descritor do extrato para transações de cobrança.

Observe que o comprimento total máximo do descritor de extrato é de 22 caracteres, e o envio de uma cadeia maior resultará em falha no processamento do pagamento. Além disso, os dados que você enviar poderão ser truncados. Em última análise, o Stripe cria um "descritor de extrato calculado" anexando o descritor que você envia ao descritor abreviado especificado em Configurações públicas do painel do Stripemas o comprimento máximo dessa cadeia calculada também é de 22 caracteres, e qualquer coisa além disso será descartada.

Para calcular o comprimento máximo do conteúdo que será exibido, use a seguinte fórmula:

comprimento máximo exibido = 22 - (comprimento do descritor reduzido + 2)

O MemberMouse passará dois parâmetros para sua função. O primeiro é $descriptor que é uma cadeia de caracteres que contém as informações que o MemberMouse enviará, a menos que seja modificado. A segunda é 1TP4Pedido que é um objeto de classe padrão que contém dados de ordem do MemberMouse, que você pode usar na construção do descritor de instrução. 

Veja um exemplo: 

add_filter("mm_stripe_billing_statement_descriptor", function($descriptor, $order)
{

   $descriptor = "Order #: " . $order->orderNumber;
   $maxLengthDescriptor = substr($descriptor,0,22);
   return $maxLengthDescriptor;
}, 1, 2);

Se seu descritor abreviado for ABC seus clientes devem ver algo parecido em seus extratos de cartão de crédito:

ABC* Pedido #: 10043

Esse filtro só pode atuar em reembolsos, não em pagamentos iniciais. Para ver todos os dados que podem ser acessados no filtro 1TP4Pedido objeto, visualize este objeto de ordem de amostra.


Descrição do Stripe PaymentIntent

mm_stripe_paymentintent_description

Outra parte dos dados enviados ao Stripe com as cobranças é a Description (Descrição), que esse filtro permite personalizar. A Description é uma das colunas exibidas quando você seleciona Pagamentos no Painel de Controle do Stripe. O comprimento máximo desse campo é de 350 caracteres.

O MemberMouse passará dois parâmetros para sua função. O primeiro é $descrição que é uma cadeia de caracteres que contém as informações que o MemberMouse enviará, a menos que seja modificado. A segunda é 1TP4Pedido que é um objeto de classe padrão que contém dados de pedido do MemberMouse, que você pode usar na construção da Descrição. 

Por exemplo, para definir esse campo como Order# 1234, Item: Membro digital você poderia usar a seguinte função em seu plug-in:

add_filter('mm_stripe_paymentintent_description', function($description, $order)
{
   $description = "Pedido # " . $order->orderNumber;
   Se (isset($order->orderProducts) && is_array($order->orderProducts))
   {
      $description .= ", Item: " . array_pop($order->orderProducts)->description;
   }
   return $description;
}, 1, 2);

Esse filtro só pode atuar em reembolsos, não em pagamentos iniciais. Para ver todos os dados que podem ser acessados no filtro 1TP4Pedido objeto, visualize este objeto de ordem de amostra.


Filtros padrão do MemberMouse

Esses são filtros incluídos no plug-in que podem ser substituídos em seu código personalizado usando remove_filter para implementar seus próprios filtros relacionados.

Validador de força da senha

mm_password_strength_validator

A partir da versão 2.2.9, o MemberMouse suporta a adição de um filtro de validação de senha personalizado. Isso permite que a senha seja avaliada com base em requisitos personalizados. Por padrão, o MemberMouse anexa um filtro básico que verifica se a senha tem pelo menos 8 caracteres. Os desenvolvedores têm a opção de adicionar um filtro adicional que será aplicado em conjunto com o padrão, ou remover o padrão e substituí-lo por um filtro personalizado.

O exemplo abaixo mostra as etapas para remover o filtro padrão e substituí-lo por um filtro personalizado. Isso pode ser adicionado ao arquivo function.php do tema, mas recomendamos que, se você seguir esse caminho, use um Tema infantil para evitar que seu código seja perdido no caso de uma atualização de tema.

//remover o filtro padrão
remove_filter('mm_password_strength_validator',array('MM_UserHooks', "passwordStrengthValidator"));

//adicionar um filtro que imponha que as senhas tenham pelo menos 8 caracteres e contenham uma letra maiúscula, um número e um caractere especial
add_filter('mm_password_strength_validator', function($passwordData)
{
   if (is_object($passwordData) && isset($passwordData->data) && !preg_match('/^(?=.*[!@#$%^&*-])(?=.*[0-9])(?=.*[A-Z]).{8,20}$/', $passwordData->data))
   {
      $passwordData->type = "error";
      $passwordData->errors[] = "A senha deve conter um caractere maiúsculo, um caractere especial e um número";
   }
   return $passwordData;
}, 10, 1);
Este artigo foi útil?

Artigos relacionados