Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đồng bộ hóa tất cả Vai trò Người dùng giữa hai Bản cài đặt Wordpress chia sẻ cùng bảng wp_users và wp_usermeta.

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dấu thời gian Laravel đang được cập nhật mà không có lệnh gọi rõ ràng để làm như vậy

  2. Nhóm theo truy vấn chọn mysql union

  3. mysql_real_escape_string VS addlashes

  4. DATALENGTH () Tương đương trong MySQL là gì?

  5. Điều kiện NẾU Thực hiện Truy vấn, Khác Thực hiện Truy vấn Khác