Saya mengalami masalah dengan menyinkronkan peran pengguna (beberapa peran pengguna per pengguna). Setelah membakar minyak tengah malam selama lebih dari dua malam, saya menemukan solusi ajaib yang konyol :)
Saya cukup mengubah 'set_user_role' menjadi 'add_user_role' di "add_action( 'set_user_role', 'ksu_save_role', 10, 2 );"
Kode akhir setelah tweak ajaib kecil
function ksu_save_role( $user_id, $role ) {
// Site 1
// Change value if needed
$prefix_1 = 'first_';
// Site 2 prefix
// Change value if needed
$prefix_2 = 'second_';
$caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
$level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );
if ( $caps ){
update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
}
if ( $level ){
update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
}
}
add_action( 'add_user_role', 'ksu_save_role', 10, 2 ); // THE MAGIC MODIFICATION
Kredit kode:https://kinsta.com/blog/share-logins-wordpress/
Tambahkan ini ke functions.php dan Anda siap melakukannya.
Ini kompatibel dengan plugin pengubah peran seperti "Langganan Woocommerce" dan "Pengubah Peran Otomatis YITH untuk WooCommerce Premium"
Anda dapat mengatur dan mengubah peran sebanyak yang Anda inginkan.