A quanto ho capito, probabilmente è cambiato nel corso degli anni, ora non lo è 'wp_capabilities'
. Ho esaminato i file WP di base, come lo fanno ora e ho trovato una nuova soluzione a questo. Ecco il codice che uso ora:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
viene quindi come un array associativo, ad esempio:
{
"administrator": true
}
o
{
"subscriber": true
}
Quindi nel tuo caso probabilmente dovresti ottenere le chiavi dell'array:
$caps_array = array_keys( $cap );
e quindi ottenere tutto da esso. Avevo bisogno di vedere se l'utente ha il ruolo di amministratore, quindi ho controllato:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
Avevo un ID utente, non l'intero WP_User
oggetto, e non volevo usare alcuna soluzione che potesse creare l' user
oggetto. Come ho verificato, get_user_meta
va direttamente al db per verificare questo parametro esatto, quindi questo dovrebbe essere il percorso più veloce e saggio delle risorse.