Tuve problemas con la sincronización de roles de usuario (múltiples roles de usuario por usuario). Después de quemar aceite de medianoche durante más de dos noches, encontré la tonta solución mágica :)
Simplemente cambié 'set_user_role' a 'add_user_role' en "add_action('set_user_role', 'ksu_save_role', 10, 2);"
El código final después del pequeño ajuste mágico
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éditos del código:https://kinsta.com/blog/share-logins-wordpress/
Agrega esto a functions.php y listo.
Es compatible con complementos de cambio de roles como "Suscripciones de Woocommerce" y "YITH Automatic Role Changer for WooCommerce Premium"
Puede establecer y cambiar tantos roles como desee.