Обновляйте Роль пользователя по Сети при обновлении Основного пользователя сайта


Я использую слегка измененную копию плагина Для управления несколькими сайтами для синхронизации пользователей в многосайтовой сети, но у меня есть одна проблема с этим. Когда роль пользователя обновляется на основном сайте, роль НЕ обновляется на дополнительном сайте. Чтобы все работало правильно, роли пользователей должны быть синхронизированы.

Я безуспешно искал, так есть ли действие, которое выполняется при обновлении пользователя? Я знаю о profile_update и функции/крючки wp_update_user, но ни одна из них не работает, потому что роль пользователя обновляется с помощью внешней функции. Поэтому мне нужен новый способ постоянной синхронизации ролей пользователей.

Есть идеи?

Author: kaiser, 2011-08-09

3 answers

Я нашел способ обойти эту проблему. Это не "исправление", а скорее способ обойти проблему необходимости синхронизированных ролей пользователей. Вместо того, чтобы пытаться сопоставить все роли пользователей, я решил проверить только роли пользователей для основного сайта. смотрите мою функцию ниже, как я это сделал:

/*
* Function to check a specified user from a subsite against
* the role of that same user on the main site
*
* @param int $site_to_check the id of the site to check the user's role from
* @param int $user_id the user's id to check
*/
function cgc_check_for_citizen($site_to_check = 1, $user_id = null) {
    if(!isset($user_id)) {
        return false;
    }
    $citizen = false;

    global $blog_id;

    if($blog_id == 1) { // we're on the main site
        if(user_can($user_id, 'read_citizen')) {
            $citizen = true;
        }
    } else {
        switch_to_blog($site_to_check);
            if(user_can($user_id, 'read_citizen')) {
                $citizen = true;
            }
        restore_current_blog();
    }
    return $citizen;
}
 2
Author: Pippin, 2011-08-22 15:04:53

Я думаю, что если ты не можешь этого понять, то никто не сможет. ;(

В любом случае, этот плагин автоматически обновляет роли пользователей для подсайтов на основе основного сайта. Так что, возможно, вы сможете извлечь код:

Http://wordpress.org/extend/plugins/user-role-editor/

 1
Author: WPExplorer, 2011-08-15 18:24:50

Привет, я не уверен, поможет ли вам этот плагин или нет. Но дайте ему попробовать. Попробуйте плагин scribu для правильной активации сети

 0
Author: PrivateUser, 2011-08-15 15:41:03