Seperti yang saya mengerti, itu mungkin berubah selama bertahun-tahun, sekarang tidak 'wp_capabilities'
. Saya melihat file WP inti, bagaimana mereka melakukannya sekarang, dan menemukan solusi baru untuk ini. Berikut kode yang saya gunakan sekarang:
global $wpdb;
$cap = get_user_meta( $wp_user_id, $wpdb->get_blog_prefix() . 'capabilities', true );
$cap
kemudian muncul sebagai array asosiatif, misalnya:
{
"administrator": true
}
atau
{
"subscriber": true
}
Jadi dalam kasus Anda, Anda mungkin harus mendapatkan kunci-kunci array:
$caps_array = array_keys( $cap );
dan kemudian mendapatkan semuanya dari itu. Saya perlu melihat apakah pengguna memiliki peran administrator, jadi saya memeriksa:
if ( is_array( $cap ) && !empty( $cap['administrator'] ) ) { return true; }
Saya memiliki ID pengguna, bukan seluruh WP_User
objek, dan saya tidak ingin menggunakan solusi apa pun yang akan membuat user
objek. Ketika saya memeriksa, get_user_meta
langsung ke db untuk memeriksa parameter yang tepat ini, jadi ini harus menjadi rute tercepat dan sumber daya.