Campos personalizados avançados (ACF) é um ótimo plug-in para adicionar qualquer conteúdo ao seu site ou até mesmo criar um site inteiro. Quando o ACF é usado com o MemberPress, você pode ter dificuldades para aplicar a proteção baseada em associação aos seus campos ACF.
Este documento mostrará como superar isso e criar seu site com sucesso com o ACF e o MemberPress.
Por que meus campos ACF não estão protegidos fora da caixa?
A proteção do conteúdo com o MemberPress é feita da seguinte forma Adicionando regras do MemberPress. Aqui, é importante mencionar que essas regras protegem apenas o conteúdo que é emitido por meio do aplicativo WordPress the_content() função. Isso se refere ao conteúdo de sua postagem. Qualquer conteúdo que esteja sendo renderizado fora dessa função permanecerá desprotegido.
O plug-in ACF usa seu próprio get_field() para exibir os campos ACF em suas postagens. Isso impede que o código da regra MemberPress seja executado nesse caso. Dessa forma, embora o conteúdo de sua postagem esteja protegido e disponível apenas para seus membros, os campos ACF na mesma postagem permanecerão visíveis para todos.
Proteção dos campos da ACF
Há duas maneiras de resolver isso e impedir que usuários não autorizados acessem os campos ACF. A primeira solução seria proteger posts inteiros e redirecionar os usuários para uma página específica.
Outra solução é proteger cada campo ACF individualmente usando um código personalizado.
Usar redirecionamento não autorizado
Conforme mencionado, a alternativa mais fácil aqui seria usar as regras do MemberPress em combinação com o redirecionamento não autorizado do MemberPress.
Para fazer isso, você deve primeiro ativar a opção de redirecionamento não autorizado em suas configurações do MemberPress. Com essa opção ativada, seus usuários não autorizados serão automaticamente redirecionados para fora das postagens protegidas. Assim, você impedirá que qualquer um deles acesse seus campos ACF desprotegidos, negando-lhes acesso a toda a postagem.
Aqui, lembre-se de que, quando ativado, o redirecionamento será aplicado a todo o seu conteúdo protegido. Se ainda quiser mostrar a mensagem não autorizada em algumas postagens protegidas, você pode adicionar exclusões de redirecionamento não autorizado usando um trecho de código personalizado.
Proteger campos ACF individuais
Dependendo de seus objetivos, proteger a postagem inteira pode não resolver o problema no seu caso. Nesse caso, você pode tentar usar nosso mepr-active para proteger campos ACF individuais. Esse recurso permitirá que você verifique se o usuário tem acesso com base nas assinaturas de associação ativas do usuário. O campo ACF protegido será exibido somente para usuários autorizados.
Abaixo, você encontra um exemplo do código para exibir um campo ACF protegido por uma regra MemberPress. A regra MemberPress, neste exemplo, tem um ID de 123 e é aplicada usando o parâmetro mepr-active capacidade:
<?php if(current_user_can('mepr-active', 'rules:123')) { get_field('acf_field_here'); }
Para usar esse código em seus campos ACF, você precisaria substitua o ID de 123 pelo ID da regra que você deseja aplicar. Você pode encontrar os IDs de todas as suas regras em Dashboard > MemberPress > Rules.