La gran diferencia entre los usuarios estándar de WordPress y el multisite está en que en el primer caso todos los usuarios tienen acceso, con roles y permisos diferentes. Pero en Multisite tenemos usuarios para unos sitios y otros para otros, por lo tanto requiere gestionarlos en nuestros plugins.
Funciones
Cuando queremos programar para los usuarios de multisite debemos comprobar que pertenecen al sitio que están intentando acceder.
<?php if (is_user_member_of_blog()){ //entra }?>
Esta función por defecto comprueba al usaurio logueado actualmente y recoge el id_blog del tema actual, y comprueba si ese usuario es miembro de ese tema, pero podemos pasarle 2 variables:
<?php if (is_user_member_of_blog($user_id,$blog_id)){ //entra }?>
En este caso comprueba si un usuario user_id, es miembro del blog blog_id.
También tenemos funciones para añadir o borrar un usuario:
add_user_to_blog($blog_id, $user_id, $rol); remove_user_to_blog($$user_id, blog_id, $user_id_reasignar);
- $blog_id => es al sitio al que le añadimos, o del que borramos. (un usuario puede pertenecer a varios sitios, así que hay que tener cuidado con pásarle de que blog queremos borrarlo).
- $user_id => El id_usuario que vamos a añadir al blog.
- $rol => permisos de acceso del usuario. Listado de roles.
- $user_id_reasignar => Cuando vamos a borrar un usuario de un sitio hay que tener en cuenta que ese usuario puede tener entradas creadas, este campo lo que hace es asignarle esas entradas al id_usuario que indiquemos. este valor es opcional.
Por último, podemos recuperar todos los sitios a los que pertenece un usuario:
$array_sitios=get_blogs_of_user(3); foreach ($array as $datos){echo $datos->blogname;}
Recogemos los sitios del usuario 3 en una variable y mostramos por pantalla el nombre de esos blogs.
Súper administradores
Al instalar multisite, WordPress crea el perfil de súper administrador, que tiene control total sobre todos los sitios y sobre funcionalidades de la red global.
Tenemos funciones para recuperar todos estos súper administradores:
print_r(get_super_admins());
Podemos confirmar si el usuario logueado es súper administrador:
if (is_super_admin(38)){//si}else{//no}
Podemos convertir un usuario en súper admin:
grant_super_admin(2);
En este caso el id_usuario 2 pasará a ser un súper administrador. Y con revoke_super_admin(2) le quitamos este poder.
Deja una respuesta