Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zsynchronizuj wszystkie role użytkowników między dwiema instalacjami Wordpress współużytkującymi te same tabele wp_users i wp_usermeta.

Miałem problemy z synchronizacją ról użytkowników (wiele ról użytkowników na użytkownika). Po spalaniu oleju o północy przez ponad dwie noce znalazłem głupie, magiczne rozwiązanie :)

Po prostu zmieniłem 'set_user_role' na 'add_user_role' w "add_action('set_user_role', 'ksu_save_role', 10, 2 );"

Kod końcowy po małej magicznej poprawce

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

Kredyty kodu:https://kinsta.com/blog/share-logins-wordpress/

Dodaj to do functions.php i jesteś świetny.

Jest kompatybilny z wtyczkami do zmiany ról, takimi jak „Subskrypcje Woocommerce” i „Automatyczna zmiana ról YITH dla WooCommerce Premium”

Możesz ustawić i zmienić tyle ról, ile chcesz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ignoruj ​​komunikaty o błędach mysql podczas wykonywania pliku sql

  2. Jak sprawdzić, czy ciąg jest w formacie JSON, czy nie?

  3. pip install mysqlclient zwraca błąd krytyczny C1083:Nie można otworzyć pliku:'mysql.h':Brak takiego pliku lub katalogu

  4. Jak uzyskać pojedynczy ostatni rekord z określonym identyfikatorem w codeigniter

  5. Czy MySQLi domyślnie weryfikuje certyfikaty serwera podczas korzystania z SSL?