Битрикс, удалить всех пользователей через APIЕсли хотите удалить всех зарегистрированных...

Михаил Базаров

Дата последнего входа: 2 часа назад
Дата регистрации: 7 Февраля 2012 21:17
День рождения: 7 ноября
Пол: Мужской
Михаил Базаров -> Всем
11 августа 14:19
Битрикс, удалить всех пользователей через API

Если хотите удалить всех зарегистрированных пользователей из Битрикс.
Делать это в списке пользователей, достаточно ресурсоемко и рутинно (если их реально много, например 10 000).
Вывести всех сразу и отметить чекбокс "выбрать всех" - скорее всего не получится, придется выводить по 1000 или меньше.

Что бы "грохнуть всех разом" - можно воспользоваться API
<?
$filter = Array
(
  "GROUPS_ID"=> Array(5))
);
$rsUsers = CUser::GetList(($by="id"), ($order="desc"), $filter);
while($arItem = $rsUsers->GetNext())
{
        if (CUser::Delete($arItem['ID'])) echo "Пользователь " .$arItem['ID']. " удален";
}
?>

Здесь мы:
-  Выбрали всех пользователей из группы с ID=5 (обычно "Зарегистрированные пользователи")
-  Методом User::GetLis - получили всю информацию о них (но, по сути, нам нужен только ID пользователя)
-  Методом CUser::Delete - удалил полученного пользователя (перебрав всех)

В массиве arItem хранится вся информация о пользователях. Комбинируя ее по разному, можно удалить только определенных пользователей.
Например: тех кто не заходил на сайт больше года.

Учтите, что если у пользователя есть заказ в магазине- он не удалится. Сначала нужно заархивировать все заказы или заказы до определенной даты.