¿Cómo puedo restaurar las capacidades de administrador?
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!

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.

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

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

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.

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.

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.

Tuve el mismo problema y ninguna de estas soluciones me ayudó.
Lo que finalmente funcionó para mí fue:
- Iniciar sesión en PHP Admin para editar la base de datos
- Buscar la tabla wp_usermeta y ver cuál es el ID del administrador (probablemente 1)
- Ahora encontrar el campo wp_capabilities
- 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.

¿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.

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

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.
