O WooCommerce, plataforma com a qual desenvolvemos lojas online, implementa um bloqueio à área de administração do WordPress (normalmente /wp-admin/
) para todos os utilizadores que não tenham capacidade de editar posts (edit_posts
) ou gerir o WooCommerce (manage_woocommerce
).
Em teoria isto é boa ideia, mas pode causar alguns problemas.
Num projecto que estamos neste momento a desenvolver para um cliente, temos a necessidade de ter um perfil (role) de utilizador específico que vai ter acesso a algumas áreas do wp-admin
. Serão áreas muito restritas e com funcionalidades específicas deste projecto.
Para isso, e com a ajuda do Capability Manager Enhanced, criámos um novo role, uma nova capacidade (capability).
Utilizámos então o seguinte código no functions.php do nosso tema:
add_filter('woocommerce_prevent_admin_access', 'customs_woocommerce_prevent_admin_access_filter'); function customs_woocommerce_prevent_admin_access_filter($prevent_access) { if (is_user_logged_in() && current_user_can('our_special_capability')) { $prevent_access=false; } return $prevent_access; }
Agora todos os utilizadores pertencentes a este role já não são redireccionados para a página My Account do WooCommerce sempre que tentam aceder ao wp-admin.
Agora só falta implementar as funcionalidades para estes utilizadores, mas isso “é outra pinga” 😉
No comments yet.