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');
Можете этот код добавить в файл функций темы и открыть любую страницу на сайте, потом можно удалить код, что бы он каждый раз не искал в заявках мертвых юзеров
Вы не имеете права на публикацию сообщений в этой теме