Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sinkronkan semua Peran Pengguna antara dua Instalasi Wordpress yang berbagi tabel wp_users dan wp_usermeta yang sama.

Saya mengalami masalah dengan menyinkronkan peran pengguna (beberapa peran pengguna per pengguna). Setelah membakar minyak tengah malam selama lebih dari dua malam, saya menemukan solusi ajaib yang konyol :)

Saya cukup mengubah 'set_user_role' menjadi 'add_user_role' di "add_action( 'set_user_role', 'ksu_save_role', 10, 2 );"

Kode akhir setelah tweak ajaib kecil

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

Kredit kode:https://kinsta.com/blog/share-logins-wordpress/

Tambahkan ini ke functions.php dan Anda siap melakukannya.

Ini kompatibel dengan plugin pengubah peran seperti "Langganan Woocommerce" dan "Pengubah Peran Otomatis YITH untuk WooCommerce Premium"

Anda dapat mengatur dan mengubah peran sebanyak yang Anda inginkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui beberapa baris dengan satu kueri?

  2. mysql SELECT IF pernyataan dengan OR

  3. Kesalahan dalam mengonfigurasi hibernate 5.0.1 dan MySQL

  4. masalah kunci asing di jdbc

  5. Perlu Metode Hemat Waktu Mengimpor File CSV Besar Melalui PHP Ke Beberapa Tabel MySQL