Vamos a ver cómo modificar los permisos de los usuarios de WordPress, anteriormente ya comenté en esta entrada cómo agregar nuevos usuarios y perfiles en WordPress y por eso he creído conveniente realizar este nuevo post.
De esta manera conociendo los diferentes tipos de perfiles podemos personalizarlos añadiendo o eliminando sus permisos en el escritorio. Por el contrario si neceitamos crear nuevos … he escrito este otro post donde explico cómo crear perfiles personalizados en WordPress.
Los usuarios de WordPress que tenemos por defecto son:
Los permisos modificados al tipo de perfil se ejecutarán sobre todos los usuarios del mismo tipo. Tambíen veremos cómo modificar los permisos a un usuario en concreto en vez de a todos los usuarios con dicho perfil.
Os enumero las funciones que vamos a usar, todas ellas se encuentran en el fichero ‘wp-includes/capabilities.php‘:
Vamos a repasar la sintaxis extraída de su web oficial:
get_role($rol)
Os explico el funcionamiento:
Vamos a ver mediante este sencillo ejemplo cómo obtener los privilegios de un perfil de tipo administrador:
$privilegios_autor = get_role('administrator');
Vamos a sacar resultado que se guarda en la variable $privilegios_autor usando la función de PHP var_export():
WP_Role::__set_state( array( 'name' => 'administrator', 'capabilities' => array ( 'switch_themes' => true, 'edit_themes' => true, 'activate_plugins' => true, 'edit_plugins' => true, 'edit_users' => true, 'edit_files' => true, 'manage_options' => true, 'moderate_comments' => true, 'manage_categories' => true, 'manage_links' => true, 'upload_files' => true, 'import' => true, 'unfiltered_html' => true, 'edit_posts' => true, 'edit_others_posts' => true, 'edit_published_posts' => true, 'publish_posts' => true, 'edit_pages' => true, 'read' => true, 'level_10' => true, 'level_9' => true, 'level_8' => true, 'level_7' => true, 'level_6' => true, 'level_5' => true, 'level_4' => true, 'level_3' => true, 'level_2' => true, 'level_1' => true, 'level_0' => true, 'edit_others_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_pages' => true, 'delete_others_pages' => true, 'delete_published_pages' => true, 'delete_posts' => true, 'delete_others_posts' => true, 'delete_published_posts' => true, 'delete_private_posts' => true, 'edit_private_posts' => true, 'read_private_posts' => true, 'delete_private_pages' => true, 'edit_private_pages' => true, 'read_private_pages' => true, 'delete_users' => true, 'create_users' => true, 'unfiltered_upload' => true, 'edit_dashboard' => true, 'update_plugins' => true, 'delete_plugins' => true, 'install_plugins' => true, 'update_themes' => true, 'install_themes' => true, 'update_core' => true, 'list_users' => true, 'remove_users' => true, 'add_users' => true, 'promote_users' => true, 'edit_theme_options' => true, 'delete_themes' => true, 'export' => true, 'wpseo_bulk_edit' => true, ), ))
Vamos a repasar esta función que añade permisos a un perfil o usuario específico, esta es la sintaxis extraída de su página oficial:
$rol->add_cap($privilegio);
Os detallo el código superior:
Vamos a ver en el código inferior cómo añadir permisos a un perfil de WordPress:
$perfil = get_role('editor'); $perfil->add_cap('delete_users');
Os explico el código superior:
Ejemplo similar al anterior, la diferencia es que esta vez no vamos a modificar el permiso a los usuarios que tienen un perfil concreto, vamos a modificar los permisos de un usuario específico:
$usuario = new WP_User(34); $usuario->add_cap( 'delete_users' );
Explicación:
Con esta función podemos eleminar permisos a un perfil o a un usuario específico, esta es la sintaxis extraída de su página oficial:
$rol->remove_cap($privilegio);
Os explico el código superior:
Vamos a ver en el código inferior cómo eliminar permisos a un tipo perfil:
$perfil = get_role('author'); $perfil->remove_cap('delete_pages');
Os lo explico:
Ejemplo similar al anterior, la diferencia es que esta vez no vamos a eliminar el permiso a los usuarios que tienen un perfil concreto, vamos a eliminar los permisos de un usuario específico:
$usuario = new WP_User(34); $usuario->remove_cap( 'delete_pages' );
Explicación:
Para optimizar el rendimiento de WordPress podemos realizar estos cambios desarrollando un plugin que nos haga estos cambios de permisos. La razón es que los cambios de permisos se quedan guardados en la BBDD.