J'ai eu des problèmes avec la synchronisation des rôles d'utilisateur (plusieurs rôles d'utilisateur par utilisateur). Après avoir brûlé de l'huile de minuit pendant plus de deux nuits, j'ai trouvé la solution magique idiote :)
J'ai simplement changé 'set_user_role' en 'add_user_role' dans "add_action( 'set_user_role', 'ksu_save_role', 10, 2 );"
Le code final après le petit ajustement magique
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
Crédits du code :https://kinsta.com/blog/share-logins-wordpress/
Ajoutez ceci à functions.php et vous êtes prêt à partir.
Il est compatible avec les plugins de changement de rôle tels que "Woocommerce Subscriptions" et "YITH Automatic Role Changer for WooCommerce Premium"
Vous pouvez définir et modifier autant de rôles que vous le souhaitez.