Les bots occupent très lentement notre existence et même le plus grand captcha ou le meilleur garde échouera à certains points. Cela peut entraîner la suppression d'un grand nombre de comptes de spam.
Les supprimer manuellement via wp-admin est douloureux. Un moyen de les supprimer rapidement?
Oui. Il y a différentes façons de le faire. Nous devons d'abord nous attaquer à la fonction wp_delete_user () .
Votre première tâche, la plus délicate, consiste à identifier les comptes qui sont du spam et ceux qui sont réels. Cela peut être tout à fait une aventure si votre site gagne régulièrement de nouveaux utilisateurs.
Avec l'exemple suivant, nous ciblons deux valeurs, le compte email
de l'utilisateur et meta_data
.
Dans ce cas, nous avons une idée s'il s'agit d'un compte spam en interprétant l'adresse e-mail. Ajoutons donc une liste dans un tableau:
$emails = array(
'[email protected]',
'[email protected]',
'[email protected]',
);
Nous avons ensuite une méta-donnée utilisateur personnalisée nommée points
:
$meta_key = 'points';
Et dans notre cas, nous savons que si la valeur de la méta-clé est 10
, il s’agit bien d’un utilisateur de spam. Donc nous définissons la valeur:
$meta_key = 10;
Maintenant assemblons-le dans une fonction:
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;
}
}
}
}
Des choses simples, mais parfois, lorsqu'il s'agit de spam et de bots, un mal de tête de moins peut être précieux.