WooCommerce destekli e-ticaret web sitenizdeki tüm ürünleri kaldırmanız gerekebilir. WooCommerce’de bunu yerel olarak yapmanın kolay bir yolu yok. Siteye aktarmak için kullandığım ürün veri XML dosyamı değiştirdiğim için yapmam gerekiyordu. Oldukça basittir, ancak düzgün bir şekilde yapabilmek için, mevcut tüm ürünlerle bağlantılı taksonomi, ilişkiler vb.
Bunu yapmak için WooCommerce Remove All Products eklentisini kullanmayı denedim, ancak 1 milyona yakın ürün kaldırmaya çalışınca sürekli timeout oldu ve ikinci olarak herhangi bir taxonomy de kaldırmadı.
Bu nedenle, tüm ürünlerinizi kaldırmak için PhpMyAdmin’inize veya WordPress veritabanınızı düzenlemek için Sequel Pro gibi başka bir araca erişmeniz gerekir. PhpMyAdmin kullanacağım çünkü en kolayı.
1.Adım: PhpMyAdmin’e Girin
Birden fazla veritabanınız varsa, doğru veritabanını tıkladığınızdan emin olun. Aynı etki alanında birden fazla WordPress yüklemeniz olduğundan emin değilseniz, bir tablo açın ve “wp_options” ifadesini arayın, üzerinde değişiklik yaptığınız web sitesinin URL’sini görebilirsiniz.
2.Adım: SQL İfadesi (Statement) Çalıştırın
Doğru veritabanındaysanız, sağ üstteki SQL sekmesine tıklayın. Boş olabilir veya önceki bir komuttan bir SQL ifadesi olabilir. Bunu silin ve yerine resmin aşağıdaki kodu yapıştırın.
Boşken, aşağıdaki kodu kopyalayıp yapıştırın:
1 2 3 4 5 6 7 8 9 10 | DELETE relations.*, taxes.*, terms.* FROM wp_term_relationships AS relations INNER JOIN wp_term_taxonomy AS taxes ON relations.term_taxonomy_id=taxes.term_taxonomy_id INNER JOIN wp_terms AS terms ON taxes.term_id=terms.term_id WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product'); DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product'); DELETE FROM wp_posts WHERE post_type = 'product'; |
SQL metin alanı şöyle görünür:
SQL ifadesini yürütmek için “Git” düğmesine basın.
3. Adım: Tüm Ürünlerin Silindiğini Doğrulayın
WooCommerce ürünler kısmına girin ve herhangi ürününüzün kalmadığını görün.
BONUS) Eğer tüm ürünleri kaldırmak yerine sadece “xx” içeren ürünleri veya belli kategoriyi kaldırmak için SQL komutlarıyla alakalı doclara kısa bir göz gezdirebilirsiniz.
- https://www.w3schools.com/sql/sql_select.asp
Alternatif Tüm Ürünleri Kaldırma SQL Kodu
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- Remove all attributes from 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); -- Delete all WooCommerce products 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'); -- Delete orphaned postmeta DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL |
Bu kodun aynısını yapan PHP dosyası:
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- Remove all attributes from 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); -- Delete all WooCommerce products 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'); -- Delete orphaned postmeta DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL |
Tüm ürünleri ve ilişkileri kaldırma SQL kodu:
1 2 3 4 5 6 7 8 9 10 | DELETE relations.*, taxes.*, terms.* FROM wp_term_relationships AS relations INNER JOIN wp_term_taxonomy AS taxes ON relations.term_taxonomy_id=taxes.term_taxonomy_id INNER JOIN wp_terms AS terms ON taxes.term_id=terms.term_id WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product'); DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product'); DELETE FROM wp_posts WHERE post_type = 'product'; |
Tüm ürünleri, kategorileri, metaları ve ilişkileri kaldırma SQL kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | DELETE relations.*, taxes.*, terms.* FROM wp_term_relationships AS relations INNER JOIN wp_term_taxonomy AS taxes ON relations.term_taxonomy_id=taxes.term_taxonomy_id INNER JOIN wp_terms AS terms ON taxes.term_id=terms.term_id WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product'); DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product'); DELETE FROM wp_posts WHERE post_type = 'product'; DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; delete from `wp_termmeta` where `term_id` in ( SELECT `term_id` FROM `wp_term_taxonomy` WHERE `taxonomy` in ('product_cat', 'product_type', 'product_visibility') ); delete from `wp_terms` where `term_id` in ( SELECT `term_id` FROM `wp_term_taxonomy` WHERE `taxonomy` in ('product_cat', 'product_type', 'product_visibility') ); DELETE FROM `wp_term_taxonomy` WHERE `taxonomy` in ('product_cat', 'product_type', 'product_visibility'); DELETE meta FROM wp_termmeta meta LEFT JOIN wp_terms terms ON terms.term_id = meta.term_id WHERE terms.term_id IS NULL; DELETE FROM wp_woocommerce_attribute_taxonomies; DELETE FROM wp_woocommerce_sessions; |