Según tengo entendido, es probable que haya cambiado con los años, ahora no es 'wp_capabilities'
. Miré los archivos principales de WP, cómo lo hacen ahora, y encontré una nueva solución para esto. Aquí está el código que utilizo ahora:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
luego viene como una matriz asociativa, por ejemplo:
{
"administrator": true
}
o
{
"subscriber": true
}
Entonces, en su caso, probablemente debería obtener las claves de la matriz:
$caps_array = array_keys( $cap );
y luego obtener todo de ella. Necesitaba ver si el usuario tiene el rol de administrador, así que verifiqué:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
Tenía un ID de usuario, no el objeto WP_User
completo, y no quería usar ninguna solución que creara el objeto user
. Cuando lo verifiqué, get_user_meta
va directamente a la base de datos para verificar este parámetro exacto, por lo que esta debería ser la ruta más rápida y con recursos.