Обновляйте Роль пользователя по Сети при обновлении Основного пользователя сайта
Я использую слегка измененную копию плагина Для управления несколькими сайтами для синхронизации пользователей в многосайтовой сети, но у меня есть одна проблема с этим. Когда роль пользователя обновляется на основном сайте, роль НЕ обновляется на дополнительном сайте. Чтобы все работало правильно, роли пользователей должны быть синхронизированы.
Я безуспешно искал, так есть ли действие, которое выполняется при обновлении пользователя? Я знаю о profile_update и функции/крючки wp_update_user, но ни одна из них не работает, потому что роль пользователя обновляется с помощью внешней функции. Поэтому мне нужен новый способ постоянной синхронизации ролей пользователей.
Есть идеи?
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;
}
Я думаю, что если ты не можешь этого понять, то никто не сможет. ;(
В любом случае, этот плагин автоматически обновляет роли пользователей для подсайтов на основе основного сайта. Так что, возможно, вы сможете извлечь код:
Привет, я не уверен, поможет ли вам этот плагин или нет. Но дайте ему попробовать. Попробуйте плагин scribu для правильной активации сети