Como denegar el acceso a un rol determinado de usuario en WordPress.
Para quitar el acceso a menús del panel de administración a un rol determinado de usuario en WordPress, usaremos la función wp_get_current_user() que nos permite el acceso a información del usuario que ha logueado (email, nombre, roles, etc …).
Una vez que sabemos los roles del usuario logueado comparamos con el rol deseado y utilizamos remove_menu_page() para quitarle el acceso a post_types, páginas, plugins, etc …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function remove_menus(){ // Guardamos roles que tiene el usuario que ha logueado. $roles = wp_get_current_user()->roles; // Si el rol "hotel-manager" existe en los roles de usuario / realizamos las acciones remove_menu_page() if( !in_array('hotel-manager', $roles)){ return; } remove_menu_page( 'index.php' ); // dashboard remove_menu_page( 'edit-comments.php' ); // Comments remove_menu_page( 'edit.php?post_type=portfolio' ); // portfolio remove_menu_page( 'wpcf7' ); // admin.php?page=wpcf7 // plugin page forms remove_menu_page( 'tools.php' ); // tools } add_action( 'admin_menu', 'remove_menus' , 100 ); |