0
219

SHARE

Como Criar Permissões Customizadas e Controle de Acesso em Plugins WordPress

Permissões Customizadas e Controle de Acesso em Plugins WordPress

Aprenda a criar permissões customizadas e gerenciar controle de acesso em plugins WordPress com boas práticas de roles e capabilities.
Este post é a parte 12 de 15 da Série WordPress Extremo: Arquitetura e Engenharia de Plugins

Fala dev, tudo certo? 👋
Aqui é o Asllan Maciel novamente, e no post de hoje da nossa trilha WP Extremo – Arquitetura e Engenharia de Plugins, a conversa é sobre controle de acesso.

Se você quer que seu plugin seja profissional, seguro e escalável, precisa dominar como criar e gerenciar permissões customizadas no WordPress.

Bora juntos? 😎


🤔 Por que trabalhar com permissões personalizadas?

Todo plugin que mexe com usuários administrativos precisa controlar quem pode fazer o quê. E não dá pra confiar só no current_user_can('manage_options') pra tudo.

Vamos pensar em cenários reais:

  • Criar relatórios acessíveis apenas para supervisores
  • Liberar painel de configuração só para admins de contrato
  • Permitir que vendedores editem somente os próprios registros

🔐 Ou seja: precisamos de um controle de acesso granular. E o WordPress permite isso – se a gente usar os recursos certos.


🧱 Capabilities e Roles no WordPress

No WordPress, cada usuário tem um “papel” (role) que vem com um conjunto de capabilities (capacidades). Exemplos:

RoleAlgumas Capabilities
administratormanage_options, edit_users
editoredit_others_posts
authoredit_posts

Mas o melhor é que você pode criar suas próprias capabilities, como:

add_cap('wp24h_view_dashboard');
add_cap('wp24h_edit_clientes');
add_cap('wp24h_gerar_relatorios');

🛠️ Criando permissões customizadas no plugin

A melhor prática é adicionar as capabilities no momento certo – geralmente na ativação do plugin:

function wp24h_add_custom_caps() {
    $role = get_role('administrator');
    if ($role) {
        $role->add_cap('wp24h_view_dashboard');
        $role->add_cap('wp24h_manage_settings');
    }
}
register_activation_hook(__FILE__, 'wp24h_add_custom_caps');

E o inverso na desativação, se quiser limpar:

function wp24h_remove_custom_caps() {
    $role = get_role('administrator');
    if ($role) {
        $role->remove_cap('wp24h_view_dashboard');
        $role->remove_cap('wp24h_manage_settings');
    }
}
register_deactivation_hook(__FILE__, 'wp24h_remove_custom_caps');

🔍 Como verificar permissões no seu plugin

Você pode usar current_user_can() sempre que quiser proteger algo:

if (!current_user_can('wp24h_view_dashboard')) {
    wp_die('Você não tem permissão para acessar esta área.');
}

Ou condicionar a exibição de elementos no admin:

if (current_user_can('wp24h_gerar_relatorios')) {
    echo '<a href="relatorio.php">Relatório</a>';
}

🧪 Dica bônus: mapeie tudo com um helper

Pra evitar “strings mágicas” no código, crie um helper centralizado:

class WP24H_Permissoes {
    const VIEW_DASHBOARD = 'wp24h_view_dashboard';
    const MANAGE_SETTINGS = 'wp24h_manage_settings';

    public static function podeVerDashboard() {
        return current_user_can(self::VIEW_DASHBOARD);
    }
}

Agora, no código você usa:

if (!WP24H_Permissoes::podeVerDashboard()) {
    wp_die('Acesso negado!');
}

Fica mais legível e organizado, né?


🤝 Ligando com outras partes da série

Essa parte conecta muito bem com o que já vimos em:

Agora, vamos deixar tudo bem organizado e seguro: logs com contexto, configurações acessíveis somente por quem pode, e permissões fáceis de manter.


✅ Conclusão

Criar permissões customizadas vai te permitir entregar plugins mais robustos, seguros e adaptáveis a diversos contextos (empresas, SaaS, agências…).

Faz parte da arquitetura moderna que estamos seguindo aqui na nossa série.

Navegação<< Criando Settings Pages Profissionais no WordPressSeparação Clara de Camadas: Core, Domain e Infra >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Listagem e Detalhes de Posts WordPress com API REST no Next.js

Listagem de Posts e Roteamento Dinâmico no Next.js

Frontend com Next.js - Setup e Integração Inicial com WordPress

Frontend com Next.js: Setup e Integração Inicial

Configurando o WordPress como Backend Headless

Configurando o WordPress como Backend Headless

REST API do WordPress

REST API do WordPress: Visão Geral

Introdução ao WordPress Headless

Introdução ao WordPress Headless

Como Distribuir Seus Blocos Gutenberg em Plugins ou no GitHub

Distribuindo Seus Blocos: Plugins, Repositório e GitHub

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!