Supprimer des clients WooCommerce et utilisateurs WordPress en MySQL (PHPMyAdmin)

par Jean - netologiste.com | Mis à jour le 1 Déc 2023 | WooCommerce | 0 commentaires

J’ai eu des milliers de comptes spams enregistrés sur un site WooCommerce, des clients sans commande, et ai du chercher comment supprimer certains comptes clients WordPress en SQL dans PHPMyAdmin, sans supprimer ceux qui avaient passé commande ou qui étaient plus « légitimes ».

La requête SQL suivante sélectionne les utilisateurs qui n’ont pas passé de commande et ne sont pas auteur d’un article (j’écris ça de tête, vérifiez bien avant de lancer la requête finale de suppression ! )

SELECT * from wp_users where wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = '_customer_user'
) AND wp_users.ID not in (
	select distinct(post_author) from wp_posts
)

J’ai remarqué que cela sélectionne des comptes légitimes, qui sont les seuls à avoir une valeur dans la colonne « user_activation_key », et ai donc ajouté :

SELECT * from wp_users where wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = '_customer_user'
) AND wp_users.ID not in (
	select distinct(post_author) from wp_posts
) AND wp_users.user_activation_key = '' 

Puis que les comptes clients utilisateurs spams n’avaient pas de nom :

SELECT * from wp_users where wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = '_customer_user'
) AND wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = 'first_name' AND meta_value = ''
) AND wp_users.ID not in (
	select distinct(post_author) from wp_posts
) AND wp_users.user_activation_key = '' 

Vous pouvez jouer avec ces requêtes SQL qui sélectionnent les clients qui n’ont pas passé de commande ou les utilisateurs spams, et lorsque vous êtes satisfait de votre sélection, après après avoir fait une sauvegarde de votre base de données, lancez la requête en remplacant « SELECT * » par « DELETE », par exemple dans mon cas :

DELETE from wp_users where wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = '_customer_user'
) AND wp_users.ID not in (
	SELECT meta_value FROM wp_postmeta WHERE meta_key = 'first_name' AND meta_value = ''
) AND wp_users.ID not in (
	select distinct(post_author) from wp_posts
) AND wp_users.user_activation_key = '' 

Ensuite, il faut nettoyer les données dans wp_usermeta pour les utilisateurs qui n’existent plus :

delete from wp_usermeta where wp_usermeta.user_id not in (select ID from wp_users);

Puis faire de même dans la table wp_wc_customer_lookup :

delete from wp_wc_customer_lookup where wp_wc_customer_lookup.user_id not in (select ID from wp_users);

Après, je ne sais plus pourquoi, mais j’ai supprimé les sessions comme ci :

DELETE FROM wp_options
WHERE option_name LIKE '_wc_session_%' OR option_name LIKE '_wc_session_expires_%'

Miracle, les utilisateurs ont bien disparu du menu « Comptes / Utilisateurs ».

Mais ils sont encore affichés dans WooCommerce > Clients !

Après de longues recherches … j’ai trouvé qu’il s’agit simplement d’un cache WordPress WooCommerce, qu’on vide en allant dans WooCommerce > Status > Tools, et en cliquant sur les boutons « Clear WooCommerce transients » et « Clear cache » qui s’y trouvent.

Si cela vous a aidé et vous a économisé des heures de recherches, laissez un commentaire d’appréciation ci-dessous et jetez un oeil à mes formations Web.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Besoin d’aide personnalisée ?

Recevez de l’aide directement sur votre site : lors d’un appel Zoom avec partage d’écran, je travaillerais avec vous sur votre site.

Pratiquez à votre rythme avec les formations en ligne

Formation WordPress

Apprendre WordPress

Comprenez WordPress de A à Z : formation complète en vidéo pour tout apprendre de WordPress.

Formation Découvrir Divi

Découvrir Divi

Créez votre site Web sans faire de code grâce au constructeur visuel Divi.

Formation Mieux utiliser Divi

Mieux utiliser Divi

Mon expérience après avoir aidé des dizaines d'entreprises à améliorer leur site Web Divi.

Formation Hébergement

Guide hébergement

Un hébergement Web avec votre installation de WordPress dès aujourd’hui.

Formation Divi Intégration Web

Divi intégration Web

Création d'une page Web complexe à partir d'une maquette graphique.

Obtenez ma formation Divi gratuitement

Recevez ma formation Divi gratuite avec des astuces pour vous simplifier le quotidien.

Vous allez recevoir un email à l'adresse que vous avez indiqué.