Měl jsem problémy se synchronizací uživatelských rolí (více uživatelských rolí na uživatele). Po půlnočním spalování oleje déle než dvě noci jsem našel hloupé magické řešení :)
Jednoduše jsem změnil 'set_user_role' na 'add_user_role' v "add_action( 'set_user_role', 'ksu_save_role', 10, 2);"
Koncový kód po malém magickém vylepšení
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
Kredity kódu:https://kinsta.com/blog/share-logins-wordpress/
Přidejte to do functions.php a můžete začít.
Je kompatibilní s pluginy pro změnu rolí, jako jsou „Woocommerce Subscriptions“ a „YITH Automatic Role Changer for WooCommerce Premium“
Můžete nastavit a změnit tolik rolí, kolik chcete.