Jag hade problem med att synkronisera användarroller (flera användarroller per användare). Efter att ha bränt midnattsolja i mer än två nätter hittade jag den fåniga magiska lösningen :)
Jag ändrade helt enkelt 'set_user_role' till 'add_user_role' i "add_action( 'set_user_role', 'ksu_save_role', 10, 2 );"
Slutkoden efter den lilla magiska justeringen
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
Kodkrediter:https://kinsta.com/blog/share-logins-wordpress/
Lägg till detta till functions.php och du är bra att gå.
Den är kompatibel med plugins för rollbyte som "Woocommerce Subscriptions" och "YITH Automatic Role Changer for WooCommerce Premium"
Du kan ställa in och ändra hur många roller du vill.