¿Cómo puedo restaurar las capacidades de administrador?

2 feb 2012, 02:47:27
Vistas: 33.8K
Votos: 1

Sí, soy un genio. Me las arreglé para eliminar todas mis capacidades de administrador (muchas gracias plugin Membership). Podría restaurarlas... si tuviera acceso de administrador, jaja.

En fin, ¿cómo puedo recuperar todas mis capacidades de administrador? Tengo acceso a la base de datos a través de PHPMyAdmin pero no tengo idea de dónde o qué agregar de vuelta a la base de datos.

Cualquier ayuda sería apreciada. ¡Gracias!

1
Comentarios

... y por favor no sugieras un plugin ;)

Dave Dave
2 feb 2012 02:47:53
Todas las respuestas a la pregunta 6
0

La cadena a continuación representa en realidad un array en forma serializada.

a:1:{s:13:"administrator";s:1:"1";}

Donde:
a:1 significa un array con un solo elemento
s:13 significa cadena (string) y la longitud de la cadena que le sigue

Array 
{
     "administrator" => "1"
}

Una vez que está en la tabla, puedes usar la función unserialize() para convertirlo nuevamente en un array y usarlo en tu código.

Muchas gracias.

2 feb 2012 07:17:12
4

Es el campo wp_capabilities en la tabla usermeta. El mío dice:

a:1:{s:13:"administrator";s:1:"1";}
2 feb 2012 03:00:58
Comentarios

¡Te daré los puntos si puedes explicar qué son/significan todos los números!

Dave Dave
2 feb 2012 03:06:51

a = array, s = string. El número es el tamaño del elemento. Es serialización estándar de PHP.

a:1 = el siguiente elemento es un array de un solo elemento, s:13 = el siguiente elemento es un string de 13 caracteres, s:1 = el siguiente elemento es un string de un solo carácter

NiloVelez NiloVelez
27 oct 2016 11:43:40

Me he enfrentado al mismo problema y funcionó para mí. Pero aquí hay una pregunta más desafiante: ¿cómo es que sucede esto? El único plugin que uso es JWT para autenticación y una Plantilla personalizada para cosas de API. No estoy cambiando ningún permiso ni añadiendo un plugin/plantilla desconocido a mi sitio. Me pregunto por qué ocurrió esto.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 jul 2020 20:17:17

De hecho, accedí a mi panel y aquí hay algo que quizás sea la razón: WordPress ha detectado que tu sitio está ejecutando una versión insegura de PHP.

Paulo Henrique Queiroz Paulo Henrique Queiroz
13 jul 2020 20:18:51
1

Vale, perdón por preguntar. Ya lo resolví. Pero para futuras personas, aquí va una sugerencia.

Paso 1 (¡¡¡HACER COPIA DE SEGURIDAD!!!) - Haz una copia de seguridad de tu base de datos. Si el siguiente paso te causa problemas y no tienes copia de seguridad, será tu culpa.

Paso 2 - Usa PHPMyAdmin o una herramienta similar para acceder a tu base de datos, encuentra la tabla wp_usermeta y ordénala por user_id. El usuario #1 es tu administrador. Luego encuentra el campo wp_capabilities y haz clic en editar (esta es la parte que se estropeó).

Reemplacé lo que tenía que estaba dañado. Esto:

a:3:{s:15:"membershipadmin";s:1:"1";s:10:"M_add_ping";s:1:"1";s:10:"subscriber";s:1:"1";}

con esto (que copié de otra base de datos de WP):

a:4:{s:13:"administrator";s:1:"1";s:15:"membershipadmin";s:1:"1";s:11:"M_add_level";s:1:"1";s:10:"M_add_ping";s:1:"1";}

Antes de marcar mi propia respuesta como correcta, ¿alguien puede confirmar mi solución o explicar el contenido de este campo y cómo debería estar correctamente configurado? Puedes tomar mi respuesta y reescribirla como tuya, y si es correcta, marcaré tu respuesta.

2 feb 2012 03:05:59
Comentarios

No siempre será el user_id 1 (aunque generalmente lo será). Debes ir a la tabla de usuarios, encontrar el nombre de usuario que deseas que sea administrador, anotar el user_id y luego usar el método mencionado anteriormente, pero para ese user_id.

mor7ifer mor7ifer
2 feb 2012 04:23:32
0

Hice los cambios en la base de datos como se indicó, pero cuando inicié sesión como administrador todavía no podía modificar usuarios o páginas.

Al comparar el campo de roles de usuario en la base de datos, noté que era diferente de otras instalaciones de WordPress. Mi solución fue esta:

Encontrar el campo llamado "wp_user_roles" en la tabla llamada [prefijo de la base de datos]_options, por ejemplo "wp_options", y asegurarse de que tenga todas las capacidades para los administradores. Es una cadena serializada con mucha información, así que creo que lo más fácil es copiar los datos de una instalación limpia de WordPress.

5 jul 2016 11:03:41
3

Tuve el mismo problema y ninguna de estas soluciones me ayudó.

Lo que finalmente funcionó para mí fue:

  1. Iniciar sesión en PHP Admin para editar la base de datos
  2. Buscar la tabla wp_usermeta y ver cuál es el ID del administrador (probablemente 1)
  3. Ahora encontrar el campo wp_capabilities
  4. Reemplazar la línea con la siguiente línea:

a:14:{s:13:"administrator";b:1;s:15:"membershipadmin";b:1;s:24:"membershipadmindashboard";b:1;s:22:"membershipadminmembers";b:1;s:21:"membershipadminlevels";b:1;s:28:"membershipadminsubscriptions";b:1;s:22:"membershipadmincoupons";b:1;s:24:"membershipadminpurchases";b:1;s:29:"membershipadmincommunications";b:1;s:21:"membershipadmingroups";b:1;s:20:"membershipadminpings";b:1;s:23:"membershipadmingateways";b:1;s:22:"membershipadminoptions";b:1;s:32:"membershipadminupdatepermissions";b:1;}

Actualizar y ahora tendrás permisos para todo en el plugin de membresía.

10 dic 2013 16:54:08
Comentarios

¿Podrías por favor agregar una explicación de cómo se puede usar el código que muestras? De lo contrario no es muy útil.

Nicolai Grossherr Nicolai Grossherr
10 dic 2013 17:12:37

De la misma manera que todas las respuestas anteriores. Sin embargo, lo actualizaré.

Trekdrop Trekdrop
11 dic 2013 16:07:02

No podía ver esas en la cola de revisión y en realidad es mejor de todos modos si tu respuesta es válida por sí misma. Como lo es ahora, después de tu actualización.

Nicolai Grossherr Nicolai Grossherr
11 dic 2013 16:23:03
0

Es bastante sencillo. Lo que hice fue abrir phpmyadmin, seleccioné una base de datos de mi sitio web anterior que había creado, busqué wp_usermeta, hice clic en user_capabilities, y como el ID de administrador es 1, simplemente copié las cadenas

(a:2:{s:13:"administrator";b:1;s:13:"bbp_keymaster";b:1;})

y las pegué en mi base de datos problemática. Hice clic en guardar, cerré sesión, volví a iniciar sesión y recuperé mis roles.

12 mar 2015 10:00:04