Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Удалить всех пользователей которые не делали заказов в магазине 1С-Битрикс

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Удалить всех пользователей которые не делали заказов в магазине 1С-Битрикс

мертых учетных записей (боты, просто фантомные регистрации и.т.д.). Необходимо удалить всех пользователей, у которых нет заказов в интернет магазине.
Доброго времение, Михаил.
Подскажите, куда вставить этот код, чтобы произвести удаление? в init.php?
И да, обработка идет по всем группам пользователей или же только обычные пользователи, без доп прав?
Можно вставить просто на любой странице сайта и открыть ее в браузере, только потом не забудте удалить из этой страницы.
Можно в админке, в "Командная php строка" и выполнить.
Проверки на группы нет, удалятся все пользователи которые не делали заказов.
Единственное не удалится пользователь с ID 1 (самый первый, главный Администратор) - даже если у него нет заказов.
Спасибо, бро. Удалил порядка 3000 аккаунтов.Не хочешь ли ты поделиться знаниями, как автоматически снимать стикер Новинка, когда среди новинок очень много товаров и руками это делать очень муторно?
А как удалять только обычных пользователей?
Спасибо.
Вот так. Отбираем пользователей из определенной группы (простые пользователи обычно 5-ая)
Только аккуратно и сначала сохранитесь - написал без проверки
Код
// Получаем всех пользователей
$rsUsers = CUser::GetList(
    ($by = "ID"),
    ($order = "DESC"),
   false
);

while ($arUser = $rsUsers->Fetch()) {

    // Получаем все группы пользователя
    $groups = CUser::GetUserGroup($arUser['ID']);

    // Проверяем, состоит ли пользователь в группе 5
    if (!in_array(5, $groups, true)) {
        continue; // не состоит — пропускаем
    }

    // Проверяем наличие хотя бы одного заказа
    $dbOrders = CSaleOrder::GetList(
        [],
        [
            'USER_ID' => $arUser['ID']
        ],
        false,
        [
            'nTopCount' => 1
        ],
        ['ID']
    );

    // Если заказов нет — удаляем пользователя
    if (!$dbOrders->Fetch()) {
        CUser::Delete($arUser['ID']);
        echo "Пользователь {$arUser['ID']} удалён\n";
    }
}
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

Блог-note Заметки по 1С-Битрикс