{"id":8073,"date":"2023-08-14T14:22:17","date_gmt":"2023-08-14T21:22:17","guid":{"rendered":"https:\/\/membermouse.com\/?post_type=ht_kb&#038;p=8073"},"modified":"2025-01-07T09:55:29","modified_gmt":"2025-01-07T14:55:29","slug":"filtros-do-membermouse-wordpress","status":"publish","type":"ht_kb","link":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/","title":{"rendered":"Filtros do MemberMouse para WordPress"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Os filtros s\u00e3o fun\u00e7\u00f5es pelas quais o WordPress passa os dados, em determinados pontos da execu\u00e7\u00e3o, pouco antes de realizar alguma a\u00e7\u00e3o com os dados. O MemberMouse define seu pr\u00f3prio conjunto de filtros que voc\u00ea pode utilizar para controlar o fluxo de execu\u00e7\u00e3o no MemberMouse antes de determinadas a\u00e7\u00f5es serem tomadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s a basic example:<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>function customContentProtection($data)\n{\n     return true;\n}\nadd_filter('mm_bypass_content_protection', 'customContentProtection');\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In this example, we&#8217;re using the&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/add_filter\" target=\"_blank\" rel=\"noreferrer noopener\"><em>add_filter()<\/em><\/a>&nbsp;para indicar que o m\u00e9todo&nbsp; <em>customContentProtection()<\/em>&nbsp;deve ser chamado quando o MemberMouse aplicar o m\u00e9todo&nbsp; <em>mm_bypass_content_protection<\/em>&nbsp;filtro. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To learn more about working with WordPress&#8217; Action API&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noreferrer noopener\">leia este artigo<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Refer\u00eancia do filtro MemberMouse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following is a list of all of the MemberMouse filters, a description of when they&#8217;re executed, and information on the data that will be passed to any function hooked into the filter.<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Intervalo de varredura de faturamento<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_billing_scan_intervalo<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\">MemberMouse 3.0+<\/mark><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse executa periodicamente um <a href=\"https:\/\/developer.wordpress.org\/plugins\/cron\/\" target=\"_blank\" rel=\"noopener\" title=\"WP-Cron\">WP-Cron<\/a> que verifica as assinaturas que devem ser cobradas novamente e as coloca na fila para processamento pelo sistema de faturamento local. Por padr\u00e3o, as varreduras s\u00e3o realizadas a cada 15 minutos. Esse filtro permite modificar o intervalo entre as varreduras, o que pode ser \u00fatil para otimizar o desempenho do seu site. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O plug-in passa um \u00fanico argumento <code>$scanIntervalo<\/code> para sua fun\u00e7\u00e3o, um n\u00famero inteiro que representa o n\u00famero padr\u00e3o de minutos entre as varreduras. Sua fun\u00e7\u00e3o deve retornar um n\u00famero inteiro que represente os minutos desejados entre as varreduras. Por exemplo, o seguinte far\u00e1 a varredura de assinaturas que est\u00e3o prontas para cobran\u00e7a uma vez a cada cinco minutos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customBillingScanInterval($scanInterval)\n{\n   return 5;\n}\nadd_filter(\"mm_billing_scan_interval\", \"customBillingScanInterval\", 10, 2);\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Intervalo de cobran\u00e7a da assinatura<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_billing_subscription_dunning_interval<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\">MemberMouse 3.0+<\/mark><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se uma assinatura n\u00e3o for cobrada na data programada, o MemberMouse far\u00e1 tr\u00eas tentativas adicionais para cobrar o pagamento. Esse filtro permite que voc\u00ea controle o intervalo entre as tentativas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse passa dois argumentos para sua fun\u00e7\u00e3o. O primeiro \u00e9 um n\u00famero inteiro <code>$failureInterval<\/code>&nbsp;que representa o n\u00famero padr\u00e3o de dias antes da pr\u00f3xima tentativa. O segundo \u00e9 um n\u00famero inteiro <code>$failureState<\/code>&nbsp;que representa o estado de falha de faturamento espec\u00edfico. Atualmente, existem tr\u00eas estados de falha: 2, 3 e 4, que representam a segunda, a terceira e a \u00faltima tentativa de cobrar o pagamento, respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your function should return an integer representing the number of days that should be allowed to elapse before the next attempt. Here&#8217;s an example that replicates the default dunning intervals:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customDunningInterval($failureInterval, $failureState)\n{\n   switch ($failureState)\n   {\n      case 2:\n         return 2; \/\/ Primeira tentativa, dois dias ap\u00f3s a falha inicial de cobran\u00e7a\n      \n      case 3:\n         return 3; \/\/ Segunda tentativa, tr\u00eas dias ap\u00f3s a primeira tentativa\n      \n      Caso 4:\n         return 2; \/\/ Terceira tentativa, dois dias ap\u00f3s a segunda tentativa\n      \n      padr\u00e3o:\n         return $failureInterval;\n   }\n}\nadd_filter(\"mm_billing_subscription_dunning_interval\", \"customDunningInterval\", 10, 2);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para personalizar os intervalos de cobran\u00e7a, basta alterar os valores retornados nas tr\u00eas instru\u00e7\u00f5es de caso para a dura\u00e7\u00e3o desejada em dias.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Acesso a blocos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_block_access<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse filtro \u00e9 aplicado depois que o MemberMouse determina que o visitante atual tem acesso ao conte\u00fado e permite que voc\u00ea bloqueie seletivamente o acesso ao conte\u00fado protegido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse passa um valor booleano <code>$blockAccess<\/code> para sua fun\u00e7\u00e3o, indicando se ela bloquear\u00e1 o acesso ao conte\u00fado por padr\u00e3o. Sua fun\u00e7\u00e3o deve retornar um booleano indicando se o MemberMouse deve bloquear o acesso ao conte\u00fado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, para bloquear o acesso de todos os membros ao conte\u00fado protegido:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun\u00e7\u00e3o blockMemberAccess($blockAccess)\n{\n   return true;\n}\nadd_filter(\"mm_block_access\", \"blockMemberAccess\", 10, 2);\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Contornar a prote\u00e7\u00e3o de conte\u00fado<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_bypass_content_protection<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This filter is applied after MemberMouse has determined the current visitor doesn&#8217;t have access to the content, and allows you to selectively bypass content protection. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse passa um valor booleano <code>$allowAccess<\/code> para sua fun\u00e7\u00e3o, indicando se ela fornecer\u00e1 acesso ao conte\u00fado por padr\u00e3o. Sua fun\u00e7\u00e3o deve retornar um booleano indicando se o MemberMouse deve permitir o acesso ao conte\u00fado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, o seguinte permitir\u00e1 que qualquer membro que tenha recebido a atribui\u00e7\u00e3o de <em>Colaborador<\/em> acesso de fun\u00e7\u00e3o a todas as p\u00e1ginas e postagens protegidas: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun\u00e7\u00e3o allowAccessForContributors($allowAccess)\n{\n    if (current_user_can(\"contributor\"))\n    {\n        return true;\n    }\n    else\n    {\n        return $allowAccess;\n    }\n}\nadd_filter(\"mm_bypass_content_protection\", \"allowAccessForContributors\", 10, 2);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Observe que, embora esse filtro forne\u00e7a acesso a p\u00e1ginas e postagens que, de outra forma, seriam inacess\u00edveis, ele n\u00e3o afeta a an\u00e1lise das SmartTags de decis\u00e3o.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Redirecionamento de login<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_login_redirect<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse filtro \u00e9 aplicado antes de o MemberMouse executar seu comportamento padr\u00e3o de redirecionamento de login, que \u00e9&nbsp;<a href=\"https:\/\/membermouse.com\/pt\/documentos-3-2\/configuracoes-da-pagina-inicial-do-membro\/\" target=\"_blank\" rel=\"noreferrer noopener\">configurado em Configura\u00e7\u00f5es da p\u00e1gina inicial do membro<\/a>. Retorna um URL para indicar que o MemberMouse deve redirecionar o usu\u00e1rio para esse URL. Retorne uma string vazia para indicar que o MemberMouse deve usar suas pr\u00f3prias regras internas para determinar para onde o usu\u00e1rio deve ser enviado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The object passed to your function contains the URL MemberMouse will redirect the user to if you don&#8217;t return an override URL and a user object containing data about the logged in user.<br>Se o nome do objeto em sua fun\u00e7\u00e3o for&nbsp;<code>$infoObj<\/code>&nbsp;then you&#8217;ll access the two data elements as follows:<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>$infoObj-&gt;currentUrl\n$infoObj-&gt;user<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Descritor de declara\u00e7\u00e3o de listras<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_stripe_billing_statement_descriptor<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando o MemberMouse inicia uma cobran\u00e7a, ele envia v\u00e1rios dados descritivos sobre a cobran\u00e7a. O descritor do extrato \u00e9 o que ser\u00e1 exibido para o cliente na fatura do cart\u00e3o de cr\u00e9dito e tamb\u00e9m \u00e9 vis\u00edvel no Stripe. Esse filtro permite que voc\u00ea personalize o descritor do extrato para transa\u00e7\u00f5es de cobran\u00e7a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Observe que o comprimento total m\u00e1ximo do descritor de extrato \u00e9 de 22 caracteres, e o envio de uma cadeia maior resultar\u00e1 em falha no processamento do pagamento. Al\u00e9m disso, os dados que voc\u00ea enviar poder\u00e3o ser truncados. Em \u00faltima an\u00e1lise, o Stripe cria um \"descritor de extrato calculado\" anexando o descritor que voc\u00ea envia ao descritor abreviado especificado em <a href=\"https:\/\/dashboard.stripe.com\/settings\/public\" title=\"\">Configura\u00e7\u00f5es p\u00fablicas do painel do Stripe<\/a>mas o comprimento m\u00e1ximo dessa cadeia calculada tamb\u00e9m \u00e9 de 22 caracteres, e qualquer coisa al\u00e9m disso ser\u00e1 descartada. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para calcular o comprimento m\u00e1ximo do conte\u00fado que ser\u00e1 exibido, use a seguinte f\u00f3rmula:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>comprimento m\u00e1ximo exibido = 22 - (comprimento do descritor reduzido + 2)<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse passar\u00e1 dois par\u00e2metros para sua fun\u00e7\u00e3o. O primeiro \u00e9 <code>$descriptor<\/code> que \u00e9 uma cadeia de caracteres que cont\u00e9m as informa\u00e7\u00f5es que o MemberMouse enviar\u00e1, a menos que seja modificado. A segunda \u00e9 <code>1TP4Pedido<\/code> que \u00e9 um objeto de classe padr\u00e3o que cont\u00e9m dados de ordem do MemberMouse, que voc\u00ea pode usar na constru\u00e7\u00e3o do descritor de instru\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s an example:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter(\"mm_stripe_billing_statement_descriptor\", function($descriptor, $order)\n{\n\n   $descriptor = \"Order #: \" . $order-&gt;orderNumber;\n   $maxLengthDescriptor = substr($descriptor,0,22);\n   return $maxLengthDescriptor;\n}, 1, 2);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se seu descritor abreviado for <em>ABC<\/em> seus clientes devem ver algo parecido em seus extratos de cart\u00e3o de cr\u00e9dito:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>ABC* Pedido #: 10043<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse filtro s\u00f3 pode atuar em reembolsos, n\u00e3o em pagamentos iniciais. <\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Descri\u00e7\u00e3o do Stripe PaymentIntent<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_stripe_paymentintent_description<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outra parte dos dados enviados ao Stripe com as cobran\u00e7as \u00e9 a Description (Descri\u00e7\u00e3o), que esse filtro permite personalizar. A Description \u00e9 uma das colunas exibidas quando voc\u00ea seleciona <em>Pagamentos<\/em> no Painel de Controle do Stripe. O comprimento m\u00e1ximo desse campo \u00e9 de 350 caracteres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MemberMouse passar\u00e1 dois par\u00e2metros para sua fun\u00e7\u00e3o. O primeiro \u00e9 <code>$descri\u00e7\u00e3o<\/code> que \u00e9 uma cadeia de caracteres que cont\u00e9m as informa\u00e7\u00f5es que o MemberMouse enviar\u00e1, a menos que seja modificado. A segunda \u00e9 <code>1TP4Pedido<\/code> que \u00e9 um objeto de classe padr\u00e3o que cont\u00e9m dados de pedido do MemberMouse, que voc\u00ea pode usar na constru\u00e7\u00e3o da Descri\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, para definir esse campo como&nbsp;<em>Order# 1234, Item: Membro digital&nbsp;<\/em>voc\u00ea poderia usar a seguinte fun\u00e7\u00e3o em seu plug-in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter('mm_stripe_paymentintent_description', function($description, $order)\n{\n   $description = \"Order # \" . $order-&gt;orderNumber;\n   if (isset($order-&gt;orderProducts) &amp;&amp; is_array($order-&gt;orderProducts))\n   {\n      $description .= \", Item: \" . array_pop($order-&gt;orderProducts)-&gt;description;\n   }\n   return $description;\n}, 1, 2);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This filter can only act on rebills, not initial payments. To see all the data that&#8217;s possible to access on the <code>1TP4Pedido<\/code> objeto, visualize este\u00a0<a href=\"https:\/\/storage.googleapis.com\/wpgcbucket\/wp\/2025\/01\/8bb79f95-oder-object-example-membermouse.txt\" target=\"_blank\" rel=\"noopener\" title=\"\">objeto de ordem de amostra<\/a>.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Filtros padr\u00e3o do MemberMouse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esses s\u00e3o filtros inclu\u00eddos no plug-in que podem ser substitu\u00eddos em seu c\u00f3digo personalizado usando&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/codex.wordpress.org\/Function_Reference\/remove_filter\" target=\"_blank\">remove_filter<\/a>&nbsp;para implementar seus pr\u00f3prios filtros relacionados.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Validador de for\u00e7a da senha<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>mm_password_strength_validator<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir da vers\u00e3o 2.2.9, o MemberMouse suporta a adi\u00e7\u00e3o de um filtro de valida\u00e7\u00e3o de senha personalizado. Isso permite que a senha seja avaliada com base em requisitos personalizados. Por padr\u00e3o, o MemberMouse anexa um filtro b\u00e1sico que verifica se a senha tem pelo menos 8 caracteres. Os desenvolvedores t\u00eam a op\u00e7\u00e3o de adicionar um filtro adicional que ser\u00e1 aplicado em conjunto com o padr\u00e3o, ou remover o padr\u00e3o e substitu\u00ed-lo por um filtro personalizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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&#8217;s function.php file, but we recommended that if you take this route, you use a&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Child_Themes\" target=\"_blank\" rel=\"noreferrer noopener\">Tema infantil<\/a>&nbsp;para evitar que seu c\u00f3digo seja perdido no caso de uma atualiza\u00e7\u00e3o de tema.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/remove the default filter \nremove_filter('mm_password_strength_validator',array('MM_UserHooks',\"passwordStrengthValidator\"));\n\n\/\/add a filter that enforces that passwords are at least 8 characters and contain an uppercase letter, a number, and a special character \nadd_filter('mm_password_strength_validator', function($passwordData)\n{\n   if (is_object($passwordData) &amp;&amp; isset($passwordData-&gt;data) &amp;&amp; !preg_match('\/^(?=.*&#91;!@#$%^&amp;*-])(?=.*&#91;0-9])(?=.*&#91;A-Z]).{8,20}$\/', $passwordData-&gt;data))\n   {\n      $passwordData-&gt;type     = \"error\";\n      $passwordData-&gt;errors&#91;] = \"Password must contain an uppercase character, a special character, and a number\";\n   }\n   return $passwordData;\n}, 10, 1);<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>Os filtros s\u00e3o fun\u00e7\u00f5es pelas quais o WordPress passa os dados, em determinados pontos da execu\u00e7\u00e3o, pouco antes de realizar alguma a\u00e7\u00e3o com os dados. O MemberMouse define seu pr\u00f3prio conjunto de filtros que voc\u00ea...<\/p>","protected":false},"author":21411,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"ht-kb-category":[188],"ht-kb-tag":[],"class_list":["post-8073","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-mm-wp-hooks-filters"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 5.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here&#039;s a basic example: function customContentProtection($data) { return true;\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Curt Noble\"\/>\n\t<meta name=\"google-site-verification\" content=\"RIQFHn-t5QxsuMU4pLG9xaceb-mmGuRaOWAEU1Q078U\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 5.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MemberMouse |\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"MemberMouse WordPress Filters | MemberMouse\" \/>\n\t\t<meta property=\"og:description\" content=\"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here&#039;s a basic example: function customContentProtection($data) { return true;\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-08-14T21:22:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-01-07T14:55:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/membermouse\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@MemberMouse\" \/>\n\t\t<meta name=\"twitter:title\" content=\"MemberMouse WordPress Filters | MemberMouse\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here&#039;s a basic example: function customContentProtection($data) { return true;\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@MemberMouse\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/membermouse.com\\\/pt\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/developer-tools\\\/#listItem\",\"name\":\"Developer Tools\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/developer-tools\\\/#listItem\",\"position\":2,\"name\":\"Developer Tools\",\"item\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/developer-tools\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/mm-wp-hooks-filters\\\/#listItem\",\"name\":\"WordPress Hooks and Filters\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/mm-wp-hooks-filters\\\/#listItem\",\"position\":3,\"name\":\"WordPress Hooks and Filters\",\"item\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/mm-wp-hooks-filters\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#listItem\",\"name\":\"MemberMouse WordPress Filters\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/developer-tools\\\/#listItem\",\"name\":\"Developer Tools\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#listItem\",\"position\":4,\"name\":\"MemberMouse WordPress Filters\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/article-categories\\\/mm-wp-hooks-filters\\\/#listItem\",\"name\":\"WordPress Hooks and Filters\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/#organization\",\"name\":\"MemberMouse\",\"url\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/\",\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/membermouse\",\"https:\\\/\\\/twitter.com\\\/MemberMouse\",\"https:\\\/\\\/www.instagram.com\\\/membermouse\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/membermouse\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/membermouse\\\/\",\"https:\\\/\\\/soundcloud.com\\\/membermouse\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/author\\\/curtcaseproof-com\\\/#author\",\"url\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/author\\\/curtcaseproof-com\\\/\",\"name\":\"Curt Noble\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#authorImage\",\"url\":\"https:\\\/\\\/membermouse.com\\\/wp-content\\\/litespeed\\\/avatar\\\/69cacd8325ef9810065b0b177318f497.jpg?ver=1787204323\",\"width\":96,\"height\":96,\"caption\":\"Curt Noble\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#webpage\",\"url\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/\",\"name\":\"MemberMouse WordPress Filters | MemberMouse\",\"description\":\"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here's a basic example: function customContentProtection($data) { return true;\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/docs\\\/membermouse-wordpress-filters\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/author\\\/curtcaseproof-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/author\\\/curtcaseproof-com\\\/#author\"},\"datePublished\":\"2023-08-14T14:22:17-04:00\",\"dateModified\":\"2025-01-07T09:55:29-05:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/#website\",\"url\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/\",\"name\":\"MemberMouse\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/membermouse.com\\\/pt\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>MemberMouse WordPress Filters | MemberMouse<\/title>\n\n","aioseo_head_json":{"title":"Filtros do MemberMouse WordPress | MemberMouse","description":"Os filtros s\u00e3o fun\u00e7\u00f5es pelas quais o WordPress passa os dados, em determinados pontos da execu\u00e7\u00e3o, pouco antes de realizar alguma a\u00e7\u00e3o com os dados. O MemberMouse define seu pr\u00f3prio conjunto de filtros que voc\u00ea pode utilizar para controlar o fluxo de execu\u00e7\u00e3o no MemberMouse antes de determinadas a\u00e7\u00f5es serem executadas. Aqui est\u00e1 um exemplo b\u00e1sico: function customContentProtection($data) { return true;","canonical_url":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"RIQFHn-t5QxsuMU4pLG9xaceb-mmGuRaOWAEU1Q078U","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt#listItem","position":1,"name":"Home","item":"https:\/\/membermouse.com\/pt","nextItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/#listItem","name":"Developer Tools"}},{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/#listItem","position":2,"name":"Developer Tools","item":"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/","nextItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/#listItem","name":"WordPress Hooks and Filters"},"previousItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/#listItem","position":3,"name":"WordPress Hooks and Filters","item":"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/","nextItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#listItem","name":"MemberMouse WordPress Filters"},"previousItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/#listItem","name":"Developer Tools"}},{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#listItem","position":4,"name":"MemberMouse WordPress Filters","previousItem":{"@type":"ListItem","@id":"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/#listItem","name":"WordPress Hooks and Filters"}}]},{"@type":"Organization","@id":"https:\/\/membermouse.com\/pt\/#organization","name":"MemberMouse","url":"https:\/\/membermouse.com\/pt\/","sameAs":["https:\/\/www.facebook.com\/membermouse","https:\/\/twitter.com\/MemberMouse","https:\/\/www.instagram.com\/membermouse\/","https:\/\/www.youtube.com\/user\/membermouse","https:\/\/www.linkedin.com\/company\/membermouse\/","https:\/\/soundcloud.com\/membermouse"]},{"@type":"Person","@id":"https:\/\/membermouse.com\/pt\/author\/curtcaseproof-com\/#author","url":"https:\/\/membermouse.com\/pt\/author\/curtcaseproof-com\/","name":"Curt Noble","image":{"@type":"ImageObject","@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#authorImage","url":"https:\/\/membermouse.com\/wp-content\/litespeed\/avatar\/69cacd8325ef9810065b0b177318f497.jpg?ver=1787204323","width":96,"height":96,"caption":"Curt Noble"}},{"@type":"WebPage","@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#webpage","url":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/","name":"MemberMouse WordPress Filters | MemberMouse","description":"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here's a basic example: function customContentProtection($data) { return true;","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/membermouse.com\/pt\/#website"},"breadcrumb":{"@id":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/#breadcrumblist"},"author":{"@id":"https:\/\/membermouse.com\/pt\/author\/curtcaseproof-com\/#author"},"creator":{"@id":"https:\/\/membermouse.com\/pt\/author\/curtcaseproof-com\/#author"},"datePublished":"2023-08-14T14:22:17-04:00","dateModified":"2025-01-07T09:55:29-05:00"},{"@type":"WebSite","@id":"https:\/\/membermouse.com\/pt\/#website","url":"https:\/\/membermouse.com\/pt\/","name":"MemberMouse","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/membermouse.com\/pt\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"MemberMouse |","og:type":"article","og:title":"MemberMouse WordPress Filters | MemberMouse","og:description":"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here's a basic example: function customContentProtection($data) { return true;","og:url":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/","article:published_time":"2023-08-14T21:22:17+00:00","article:modified_time":"2025-01-07T14:55:29+00:00","article:publisher":"https:\/\/www.facebook.com\/membermouse","twitter:card":"summary_large_image","twitter:site":"@MemberMouse","twitter:title":"MemberMouse WordPress Filters | MemberMouse","twitter:description":"Filters are functions that WordPress passes data through, at certain points in execution, just before taking some action with the data. MemberMouse defines its own set of filters that you can utilize to control the flow of execution in MemberMouse prior to certain actions being taken. Here's a basic example: function customContentProtection($data) { return true;","twitter:creator":"@MemberMouse"},"aioseo_meta_data":{"post_id":"8073","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[],\"usage\":0}}","created":"2023-10-11 18:39:41","updated":"2026-06-03 04:54:02","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":"2026-06-03 03:28:50","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/membermouse.com\/pt\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/\" title=\"Developer Tools\">Developer Tools<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/\" title=\"WordPress Hooks and Filters\">WordPress Hooks and Filters<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tMemberMouse WordPress Filters\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/membermouse.com\/pt"},{"label":"Developer Tools","link":"https:\/\/membermouse.com\/pt\/article-categories\/developer-tools\/"},{"label":"WordPress Hooks and Filters","link":"https:\/\/membermouse.com\/pt\/article-categories\/mm-wp-hooks-filters\/"},{"label":"MemberMouse WordPress Filters","link":"https:\/\/membermouse.com\/pt\/docs\/membermouse-wordpress-filters\/"}],"_links":{"self":[{"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb\/8073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/users\/21411"}],"replies":[{"embeddable":true,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/comments?post=8073"}],"version-history":[{"count":1,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb\/8073\/revisions"}],"predecessor-version":[{"id":20432,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb\/8073\/revisions\/20432"}],"wp:attachment":[{"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/media?parent=8073"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb-category?post=8073"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/membermouse.com\/pt\/wp-json\/wp\/v2\/ht-kb-tag?post=8073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}