Mysql
 sql >> база данни >  >> RDS >> Mysql

Синхронизирайте всички потребителски роли между две инсталации на Wordpress, споделящи едни и същи таблици wp_users и wp_usermeta.

Имах проблеми със синхронизирането на потребителски роли (множество потребителски роли на потребител). След като горя среднощно масло за повече от две нощи, намерих глупавото магическо решение :)

Просто промених 'set_user_role' на 'add_user_role' в "add_action('set_user_role', 'ksu_save_role', 10, 2);"

Крайният код след малката магическа настройка

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

Кредити за кодове:https://kinsta.com/blog/share-logins-wordpress/

Добавете това към functions.php и сте страхотни.

Съвместим е с плъгини за смяна на роли като „Абонаменти за Woocommerce“ и „YITH Automatic Role Changer for WooCommerce Premium“

Можете да задавате и променяте толкова роли, колкото искате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате ISO8601 във формат на дата в php

  2. Вмъкване на списък със стойности не съответства на списъка с колони:1136 Броят на колоните не съвпада с броя на стойностите

  3. JSON_SEARCH() – Намерете пътя към низ в JSON документ в MySQL

  4. SQL:Сравняване на два броя от различни таблици

  5. Как да проверя дали радио бутонът е отметнат или избран в jQuery?