Descubre en este tutorial cómo conseguir que cuando se cambie el rol de usuario en una web se cambie también en otra instalación de WordPress usando la API REST.
En este tutorial vas a aprender cómo puedes usarla para que cuando se cambie el rol de un usuario en la web1, cambie también el rol de ese usuario en la web2.
Esto puede ser muy interesante si quieres que los usuarios de una web tengan acceso a otra como parte de una suscripción o membresía y controlar a qué tienen acceso en base a su rol de usuario.
Vamos a ver cómo conseguirlo:
Instrucciones para cambiar el rol de usuario en otra instalación de WordPress usando la API REST
1. Crea una contraseña para la API REST
Lo primero que tienes que hacer es crear una nueva contraseña de aplicación en la instalación de WordPress donde quieres que se modifique el mismo usuario (web2) que en la instalación original (web1).
Para ello, en la web2, ve a Usuarios > Perfil y haz scroll hasta el apartado de «Contraseñas de aplicación».
A continuación, rellena el campo de nombre de nueva contraseña (puede ser cualquiera) y pulsa en «Añadir una nueva contraseña de aplicación».
Una vez hecho, se mostrará el nombre de la contraseña y la contraseña. Asegúrate de copiarla y guardarla a buen recaudo porque no volverán mostrarse.
2. Utiliza la API REST para modificar el rol de usuario
Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades de la web1:
Para ver este código y los otros 2063 snippets de esta web,
identifícate o suscríbete aquí.
Con este código usas el hook set_user_role
para que se ejecute cuando haya un cambio en el rol de usuario de la web1 y gracias a la API REST indicas que cambie el rol de usuario en la otra instalación de WordPress (web2).
En la primera parte del snippet defines las variables:
$api_username
= Nombre de usuario de WordPress$api_password
= Contraseña de aplicación obtenida en el paso anterior$website_url
= La URL de la web2$search_ur
l = La URL donde se hace la búsqueda del usuario. En este caso es la concatenación:$website_url . '/wp-json/wp/v2/users?search=' . urlencode( $user_email )
'
que accede al endpoint de los usuarios de la API REST.
Acuérdate de cambiar el valor de las anteriores variables por las de tu caso.
A continuación usas la función wp_remote_request
para obtener el endpoint para usuarios y usando el método POST
pasas los datos del usuario. En este caso el rol de usuario ('roles'
).
En este ejemplo, indicas que:
- Cuando el usuario de la web 1 cambie a
'subscriber_gold
'
en la web 2 pase a ser'customer_gold'
. - Cuando el usuario de la web 1 cambie a otro rol distinto (diferente a
'subscriber_gold
'
) en la web 2 pase a ser'customer'
.
Pero la idea es que lo ajustes a tus necesidades.
Tienes más información al respecto en página oficial para desarrolladores de WordPress.
En el código también incluyes varios registros de error para saber si alguno de los pasos no se ha producido correctamente.
Si tienes alguna duda o sugerencia puedes dejarla en los comentarios.
Conclusiones
Ahora ya sabes cómo utilizar la API REST para que cuando cambies el rol de usuario en una web este también cambie en otra instalación de WordPress.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉