09/04/2017

Supprimer tous les produits dans woocommerce via phpmyadmin

Voila tous les produits ont été supprimés dans woocommerce

Comment supprimer des produits en masse dans woocommerce ?


Parfois vous fait un super import de produit qui dure la nuit, et lorsque vous vous réveillez vous vous apercevez que y'a un truc qui a foiré. Malheureusement, vous êtes sur un serveur mutualisé, et les ressources ne vous permettent pas de sélectionner tous vos produits et tout supprimer correctement.

Ceci est mon mémo perso, je ne garanti pas que vous n'allez pas tout effacer sur votre site, donc utilisez le avec précaution et faites un backup.




Voici les commandes à taper :

Supprimer tous les attributs woocommerce

DELETE FROM wp_terms WHERE term_id IN 
(SELECT term_id FROM wp_term_taxonomy WHERE taxonomy LIKE 'pa_%');
DELETE FROM wp_term_taxonomy WHERE taxonomy LIKE 'pa_%';
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN 
(SELECT term_taxonomy_id FROM wp_term_taxonomy);

Supprimer tous les produits woocommerce

DELETE FROM wp_term_relationships WHERE object_id IN 
(SELECT ID FROM wp_posts WHERE post_type IN ('product','product_variation'));
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type IN 
('product','product_variation'));
DELETE FROM wp_posts WHERE post_type IN ('product','product_variation'); 

Supprimer les postmeta orphelins dans woocommerce

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL

Supprimer toutes les étiquettes produits dans woocommerce par sql

DELETE a,c FROM wp_terms AS a 
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'product_tag';

DELETE a,c FROM wp_terms AS a
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'product_cat'