SQL запрос на массовое удаление продуктов WooCommerce по дате публикации - PullRequest
0 голосов
/ 04 сентября 2018

у нас на сайте магазина более 50 тыс. Товаров, и около половины из них необходимо удалить. Мы сделали новую загрузку продуктов с помощью wpallimport и установили опцию удаления любых продуктов, которые не были загружены, но они не работали. Вместо этого он просто добавил все из них в нашем CSV. Мы попытались выполнить массовое удаление с помощью BulkWP, но это привело к сбою сайта. Я удалил их вручную, но могу сделать только 60 за один раз, чтобы быть в безопасности, что не дает сбоя. Я добавил память к 1024, время выполнения до 600, ввод переменных до 3000, но все равно это не нравится. Мы хотели бы удалить все продукты, у которых дата публикации старше, чем последний импорт, с использованием SQL-запроса, поскольку это, вероятно, будет самым быстрым способом, но мы хотели посмотреть, будет ли это работать, так как у меня здесь, с X, сколько дней :

DELETE FROM 'wp_posts' WHERE 'post_type' = 'product' AND DATEDIFF(NOW(), 'post_date') > X

Существуют ли какие-либо другие данные, которые необходимо будет удалить после удаления продукта, например, post-meta? Если так, какой запрос будет работать, чтобы удалить мета, специфичную только для тех, у кого более старая дата публикации? Цените это полностью

1 Ответ

0 голосов
/ 05 сентября 2018

Продукты Woocommerce расположены в основном в 2 таблицах: wp_posts и wp_postmeta . Если вы хотите удалить их, вам придется использовать предложение JOIN для объединения строк продукта из этих таблиц.

Предположим, вы хотите удалить все товары, добавленные до 1 сентября 2018 года. Вы можете использовать этот запрос ниже.

DELETE wp_posts, wp_postmeta FROM wp_posts 
JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.post_type = 'product' and wp_posts.post_date < '2018-09-01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...