Прошу помощи:
Один больной на всю голову тролль атакует сайт под разными никами уже целую неделю, и многим авторам испортил настроение, рейтинг и репутацию, ставя им минусы в комментариях, накручивая рейтинг записей, и т.п.
Можно ли сделать так, чтобы после удаления тролля (бан), все его действия, в т.ч. коментарии, баллы, оценки и т.д. автоматически удалялись?
Какого то готового функционала под подобную задачу нет, придется что то выдумывать, я бы прицепился к хуку delete_user, как правило, именно на него вешают функции очистки данных пользователя на сайте, но 100%-гарантии нет, что все данные могут быть удалены.
Будет выглядеть примерно так:
Размещаете код
add_action( 'wp', 'my_delete_user_data', 10 ); function my_delete_user_data() { if ( isset($_GET['userdata-delete']) && $user_id = $_GET['userdata-delete']) { do_action('delete_user', $user_id); wp_die('Данные пользователя удалены!'); } }
далее в адресной строке набираете адрес
http://вашдом.ен/?userdata-delete=123
где 123 - идентификатор пользователя данные которого хотите удалить.
Будет запущена процедура очистки сайта от данных пользователей, при этом сам аккаунт пользователя должен остаться.
Предложенный код потом удалите или закомментируйте.
комментарии скорее всего не будут удалены, если это также необходимо, то дополнительно добавьте код
add_action( 'delete_user', 'my_delete_user_comments', 10 ); function my_delete_user_comments( $user_id ) { global $wpdb; return $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE user_id='%d'", $user_id ) ); }
тогда при удалении пользователя и проведении процедуры выше будут удаляться также комментарии этого пользователя, будьте осторожны, в корзине их тоже не найдете.
Все сделал по рекомендациям Андрея, и... магия произошла! 💥
Всё, что не нужно - очистилось и удалилось, всё, что нужно - осталось. Это просто чудо какое-то ☀
Пойду, отправлю Волшебнику на чашечку кофе ☕
P.S. Превратить этот волшебный код в небольшой доп - это здравая мысль: когда нужно рубить головы - активировал его, потом, после казни - деактивировал и всё. 🔧
Спасибо огромное, Андрей!
Андрей CS сказал(а)
Идея насчет допа хорошая, может я, а может кто то другой обязательно опубликует.
Дополнительная информация для тех, кто возьмётся за создание подобного допа: предложенный вариант не удаляет следы тролля из форума. Его комментарии из Prime-forum необходимо удалять вручную.