• У меня в блоге из примерно 29000 зарегистрированных практически половина спам регистрации. Прорвались они похоже через подключенный bbpress так там некоторое время не было каптчи.
    У большей части спамеров отсутствует роль, но, к сожалению, сортировка списка пользователей wordpress не позволяет вывести отдельно всех юзеров без роли.
    Сейчас пытаюсь их вычистить, но в ручном режиме это слишком трудоемкий процесс.
    Может, у кого есть идеи как это можно автоматизировать?

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Можно попытаться обойтись штатными методами, например функцией http://codex.wordpress.org/Function_Reference/get_users (в которой можно и по мета полям выборку сделать), загоняем по-условию в массив и в цикле удаляем http://codex.wordpress.org/Function_Reference/wp_delete_user

    И куда все это нужно класть или нужно писать для этого плагин?

    Можно плагин, а можно и через functions.php активной Темы.. «Ета, как грится» — как вам удобнее )

    Да я, вообще-то, надеялся найти готовое решение:) Сам я не уверен, что смогу это сделать.

    Готовых решений я думаю, нет, потому как условия у всех разные, можно подумать, только требуется дополнительная информация от вас, например содержимое мета полей у «спамеров». Это то, что находится в таблице wp_usermeta. Найдите там точно спамера, и предоставьте его данные, а еще лучше найдите объединяющий всех фактор (аля значение). Надо же знать, кого «убивать» будете ))

    Я писал в самом начале, что единственное что объединяло всех спамеров то что у них не была прописана роль пользователя.

    Соответственно в таблице wp_usermeta у спамеров в meta_key нет строк с wp_capabilities

    Проблему так и не решил. Ковыряться напрямую в базе и удалять в ручную не очень хочется. А плагина позволяющего делать выборку по параметрам и удалять пользователей так и не нашлось.

    Если плагина нет, а удалять через базу не хотите, то выхода и не будет. Кстати, плагин удаляет напрямую из базы, не вижу особенной разницы.

    Я просто не хочу удалять в ручную так как боюсь что-нибудь забыть в связанных таблицах типа user_meta.

    Тогда вариантов не остаётся.

    Нашел решение — WangGuard
    В режиме Wizard проверяет всех пользователей на присутствие в базе спамеров и сплогеровпо IP и e-mail.
    Помечает сплогеров, потом их можно быстро удалить всех нажатием одной кнопки

    Если у вас несколько десятков тысяч пользователей то можно упереться в ограничение на количество запросов в день, это легко обходится, если разбить поиск на части, указав в адресной строке значение переменной wangguard_wiz_from= что бы не проверять одних и тех же несколько раз.

    Например: wangguard_wiz_from=10000 поиск будет идти не сначала а с акка №10000

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Массовое удаление пользователей» закрыта для новых ответов.