Tôi đã gặp sự cố với việc đồng bộ hóa vai trò người dùng (nhiều vai trò người dùng cho mỗi người dùng). Sau khi đốt dầu nửa đêm trong hơn hai đêm, tôi đã tìm thấy giải pháp kỳ diệu ngớ ngẩn :)
Tôi chỉ cần thay đổi 'set_user_role' thành 'add_user_role' trong "add_action ('set_user_role', 'ksu_save_role', 10, 2);"
Mã kết thúc sau chỉnh sửa nhỏ kỳ diệu
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
Tín dụng mã: https://kinsta.com/blog/share-logins-wordpress/
Thêm cái này vào functions.php và bạn thật tuyệt.
Nó tương thích với các plugin thay đổi vai trò như "Đăng ký Woocommerce" và "YITH Tự động thay đổi vai trò cho WooCommerce Premium"
Bạn có thể đặt và thay đổi nhiều vai trò tùy thích.