3ответ(ов) в теме
Пользователь подает заявку в закрытую группу. Я как админ не успеваю одобрить заявку.
Затем пользователь удаляет свой аккаунт.
Я как админ захожу в эту группу, вижу входящий запрос:
Вы не можете просматривать опубликованные ссылки
нажимаю туда и вижу, что запросов нет:
Вы не можете просматривать опубликованные ссылки
потому что пользователь удалил свою анкету с сайта.
Как убрать этот запрос на несуществующего пользователя?
После удаления юзера дополнение не очищает заявки, которые он оставил.
function fix_group_membership_requests() {
$groups_requests = RQ::tbl(new Rcl_Groups_Options_Query())
->select(['option_value', 'group_id'])
->where([
'option_key' => 'requests_group_access',
])->get_results();
if (!$groups_requests) {
return;
}
foreach ($groups_requests as $_requests) {
$requests_users = $_requests->option_value;
$group_id = $_requests->group_id;
$need_update = false;
/**
* Если в группу нет заявок - ничего не делаем
*/
if (!$requests_users) {
continue;
}
/**
* Если есть заявки - ищем "мертвых" пользователей
*/
foreach ($requests_users as $key => $u_id) {
$user_exists = get_userdata($u_id);
if (!$user_exists) {
$need_update = true;
unset($requests_users[$key]);
rcl_add_log('fix_group_membership_requests', array(
'removed_user' => $u_id,
'from_group' => $group_id
));
}
}
/**
* Если мертвых пользователей не найдено - ничего не делаем
*/
if(!$need_update) {
continue;
}
/**
* Если среди заявок остались только мертвые пользователи - удалим опцию
*/
if(!$requests_users) {
rcl_delete_group_option( $group_id, 'requests_group_access' );
}
/**
* Обновим список заявок, оставив только существующих пользователей
*/
if($requests_users) {
rcl_update_group_option($group_id, 'requests_group_access', $requests_users);
}
}
}
add_action('init', 'fix_group_membership_requests');
Можете этот код добавить в файл функций темы и открыть любую страницу на сайте, потом можно удалить код, что бы он каждый раз не искал в заявках мертвых юзеров
Вы не имеете права на публикацию сообщений в этой теме