Intereting Posts
Могу ли я управлять контентом моего пользовательского сайта с помощью WordPress? Переписывание URL с 3 настраиваемыми мета-полями для добавления на страницы Всплывающее окно с вопросом, следует ли удалять данные при удалении плагина Пользовательские сообщения WordPress и постоянные ссылки Вставьте содержимое плагина до конца корпуса Разрешить пользователям регистрировать себя и отправлять сообщения: обрабатывает ли WordPers эти проблемы? Как настроить пользовательский плагин по запросу? Почему WordPress перенаправляет пользователей на случайные сообщения после комментариев? Фильтр рекомендаций по рекламе Woocommerce, основанный на категории CPT Функция is_category () Имя привязки (имя идентификатора) в адресной строке Постоянная ссылка не работает на новом сайте Единый знак между двумя сайтами wordpress как получить список навигационного меню по имени меню в wordpress Предупреждение о представлении формы: невозможно изменить ошибку заголовка только тогда, когда плагин отключен

Массовое удаление спам-аккаунтов

Боты так медленно поглощают наше существование, и даже величайший капчу или охранник терпят неудачу в очках. Это может привести к большому количеству спам-аккаунтов, которые необходимо удалить.

Удаление их вручную с помощью wp-admin является болезненным. Любой способ быстро удалить их?

Solutions Collecting From Web of "Массовое удаление спам-аккаунтов"

Да. Существует множество способов сделать это, прежде всего, нам нужно будет решить функцию wp_delete_user () .

Ваша первая задача и сложная задача – идентифицировать, какие учетные записи являются спамом, и которые являются реальными. Это может быть довольно приключением, если ваш сайт регулярно получает новых пользователей.

В следующем примере мы нацеливаем два значения: email запись email пользователя и meta_data .

В этом случае у нас есть идея, если это учетная запись спама, интерпретируя адрес электронной почты. Итак, добавим список в массив:

 $emails = array( 'mail@stackexchange.com', 'spam@spam.com', 'mail@ma.tt', ); 

Затем у нас есть пользовательские метаданные с именами:

 $meta_key = 'points'; 

И в нашем случае мы знаем, что если значение мета-ключа равно 10 , то это определенно является пользователем спама. Поэтому мы устанавливаем значение:

 $meta_key = 10; 

Теперь давайте объединим его в функцию:

 function wpse_delete_users_by_email($emails, $meta_key, $meta_value) { if (!is_array($emails)) return; foreach ($emails as $email) { // get user data via email $user = get_user_by( 'email', $email ); $user_id = $user->ID; $user_email = $user->user_email; // get $meta_data = get_user_meta($user_id, $meta_key, TRUE); // if meta data equals the meta value if ($meta_data == $meta_value) { // confirm that emails match if ($user_email == $email) { // must include this, or it will throw a 'call to undefined function' error require_once(ABSPATH.'wp-admin/includes/user.php' ); // delete spam user wp_delete_user( $user_id ); // display results echo '<br>' . $email; } } } } по function wpse_delete_users_by_email($emails, $meta_key, $meta_value) { if (!is_array($emails)) return; foreach ($emails as $email) { // get user data via email $user = get_user_by( 'email', $email ); $user_id = $user->ID; $user_email = $user->user_email; // get $meta_data = get_user_meta($user_id, $meta_key, TRUE); // if meta data equals the meta value if ($meta_data == $meta_value) { // confirm that emails match if ($user_email == $email) { // must include this, or it will throw a 'call to undefined function' error require_once(ABSPATH.'wp-admin/includes/user.php' ); // delete spam user wp_delete_user( $user_id ); // display results echo '<br>' . $email; } } } } 

Простые вещи, но иногда при работе со спамом и ботами, одна меньшая головная боль может быть ценной.