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.

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.

Referência do filtro MemberMouse

The following is a list of all of the MemberMouse filters, a description of when they’re executed, and information on the data that will be passed to any function hooked into the filter.

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.

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.


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

This filter is applied after MemberMouse has determined the current visitor doesn’t have access to the content, and allows you to selectively bypass content protection.

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.

The object passed to your function contains the URL MemberMouse will redirect the user to if you don’t return an override URL and a user object containing data about the logged in user.
Se o nome do objeto em sua função for $infoObj then you’ll access the two data elements as follows:

$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. 

Here’s an example: 

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.


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 = "Order # " . $order->orderNumber;
   if (isset($order->orderProducts) && is_array($order->orderProducts))
   {
      $description .= ", Item: " . array_pop($order->orderProducts)->description;
   }
   return $description;
}, 1, 2);

This filter can only act on rebills, not initial payments. To see all the data that’s possible to access on the 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.

The example below shows the steps to remove the default filter and replace it with a custom filter. This can be added into the theme’s function.php file, but we recommended that if you take this route, you use a Tema infantil para evitar que seu código seja perdido no caso de uma atualização de tema.

//remove the default filter 
remove_filter('mm_password_strength_validator',array('MM_UserHooks',"passwordStrengthValidator"));

//add a filter that enforces that passwords are at least 8 characters and contain an uppercase letter, a number, and a special character 
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[] = "Password must contain an uppercase character, a special character, and a number";
   }
   return $passwordData;
}, 10, 1);
Este artigo foi útil?

Artigos relacionados