X

Crear usuario Administrador de WordPress desde la Base de Datos

¿Recuperaste alguna vez un backup de un sitio pero no tienes el usuario administrador?, en este artículo veremos como modificar un usuario existente o cómo crear un nuevo usuario para que sea administrador y lo haremos directamente en la base de datos.

 

Generalidades

En un artículo anterior vimos cómo usar roles y capacidades en WordPress, el nivel de administrador del sitio es un rol que viene por defecto con WordPress.

Haremos las modificaciones con consultas SQL que se ejecutarán directamente en la base de datos.
Los roles se cambian en la tabla wp_usermeta y es precisamente en esta tabla en donde haremos modificaciones para indicar que el usuario será administrador.

 

Agregar un nuevo usuario Administrador

Usaremos PHPMyAdmin para ejecutar el código SQL

 
Lo único que tienes que cambiar son las siguientes variables:

SET @prefix = 'wp_';
SET @user_login = 'demo';
SET @user_pass = 'demo';
SET @user_email = 'demo@demo.com';
SET @display_name = 'Nombre Demo';

 
El código completo se muestra a continuación:

En el código anterior:

  • Primero debes cambiar las variables que crearán el usuario
  • Luego el código inserta un nuevo registro en la tabla de usuarios
  • Capturamos el ID más reciente insertado
  • En la tabla usermeta asignamos el rol de usuario a través del key wp_capabilities
  • En la misma tabla también agregamos el key wp_user_level, esto por compatibilidad ya que actualmente WordPress no lo usa

El valor del key wp_capabilities para que un usuario sea administrador es: ‘a:1:{s:13:»administrator»;s:1:»1″;}’

 

 

Actualizar un usuario para que sea Administrador

Usaremos PHPMyAdmin para ejecutar el código SQL

 
En este caso tienes que cambiar sólo las variables:

SET @prefix = 'wp_';
SET @id_user = 2;

 
El código completo se muestra a continuación:

En el código anterior:

  • Cambiamos los valores de las variables para actualizar el usuario
  • Luego directamente actualizamos la tabla usermeta
  • En esta tabla actualizamos el key wp_capabilities

 
 

Conclusión

Como has podido comprobar, es muy simple agregar un usuario administrador de WordPress o cambiar a administrador algún usuario existente, simplemente haciendo cambios a nivel de base de datos con consultas SQL.

 

Categorías: Core
Etiquetas: herramientas

Ver comentarios (19)

  • Hola gracias por tu video, pero intente hacer la primera parte y al darle a continuar me arroja un error
    PREPARE tbluser FROM @user
    #1054 - La columna 'user_login' en field list es desconocida

    No se como puedo arreglarlo

    • Hola, asegúrate de seleccionar la BD correcta, esa columna si existe en la tabla de usuarios de WordPress.
      Saludos

  • Hola jhon gracias por el script, la inclusion me trabajo bien pero el scritp de modificacion no, aunque cambia de suscripcion a administracion segun el ejemplo que tu colacas, si quiero ejecutar la modificacion de administracion a cliente o a suscriptor, o colaborador, no lo hace, en vez de eso coloca ninguno, gracias de antemano por tu respuesta

    • Hola Julio, el script sólo cambia efectivamente el rol hacia administrador, no hacia otro rol diferente.

  • Hola! Tengo 2 wordpress con una misma base de datos de usuarios, pero no puedo acceder al admin del segundo porque ninguno de los usuarios está como admin de ese wordpress, y lo intenté con esto y no me funcionó, ¿como lo puedo lograr?

    • Hola, supongo que es un multisitio, no lo he probado con multisite, si tienes acceso como super admin deberías poder crear o asignar el usuario administrador desde el backend del sitio.

  • Estimado, gracias por tan valiosos tutoriales, Dios te siga dando sabiduría y conocimiento.
    Quisiera tu opinión ya que LEÍ que no es recomendable usar el sistema de usuarios de wordpress por ser inseguro. Soy programador php, pero sinceramente NO VEO que usar los formularios de registro de usuarios de wordpress tenga problemas de seguridad. ¿Podrías opinar al respecto?

    • Hola, no he tenido problemas con la seguridad del formulario de registro, tal vez lo que comenta se refiere a que a través de los formularios (no sólo de registro) puede entrar spam. Eso se complementa con alguna funcionalidad de recaptcha para tenerlo controlado. Saludos.

      • Muchísimas gracias por tan valiosa aportación, por eso la insistencia. Dios te siga dando sabiduría.

  • Muy buena explicación y muy efectiva. Estaba trabado en que sólo entraba en el wp sin ningún permiso, y actualmente todo solucionado. En cuanto pueda te dono algo. Será posible?

  • Hola John, muchas gracias por el artículo.
    Te planteo un problema que tengo a ver si me puedes ayudar.
    Tengo 2 instalaciones de Wordpress. La instalación principal es un ecommerce donde se venden clases hecha con Divi y Woocommerce. He creado un subdominio para la impartición de cursos y que pretendo hacer con Astra y Learndash. Con objeto de que los alumnos que compren clases y cursos no tengan que tener 2 usuarios he hecho que ambas instalaciones de Wordpress compartan la misma base de datos, cada una con un prefijo distinto para las tablas (modificando wl wp_config.php del subdominio). Y únicamente he configurado que las tablas de usuarios (users y usermeta) del subdominio de cursos usen las misma tablas que la instalación principal.
    He probado y funciona correctamente con usuarios clientes pero no consigo poder entrar como administrador en el subdominio de cursos aunque en la tabla de usuarios está correctamente definido como administrador, sí puedo entrar en la de la instalación principal. Por favor, ¿tienes idea de qué podría hacer para resolverlo? Muchas gracias.