В сети многие блогеры, поклонники различных фреймворков и фанаты Битрикса любят говорить о том, что интернет-магазин на WordPress — это извращение, неправильно, нельзя добавить много товаров и т.п. Это, естественно, неправда. Я скоро закончу создававать для одного из клиентов целую сеть партнёрских интернет-магазинов на WooCommerce с количеством товаров от 500 и до 48 000 позиций. С автоматическим обновлением цен и других необходимых полей. И всё это на виртуальном хостинге за сущие гроши. Этому будет посвящён отдельный пост с описанием настроек кеширования для великолепного быстродействия.
В этой заметке я хотел бы поделиться с Вами (и себе записать, чтобы не забыть) простой способ удаления всех товаров из WooCommerce. В каталоге плагинов есть несколько специализированных плагинов. Но работают они паршиво, с ошибками.
Всё, что нам понадобиться — это доступ к базе данных. Делаем запрос и радуемся:
DELETE FROM wp_term_relationships 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';
Добрый день! А можно для чайников, рассписать более подробно, как сделать запрос к базе данных. Спасибо
Добрый день, Валерий.
Чтобы сделать запрос к БД Вам нужно залогиниться в phpmyadmin или другой инструмент управления БД. И там выполнить sql запрос.
Только если префиксы таблиц у Вас отличаются от дефолтных — смените в запросе префиксы на свои. Например, «wp_postmeta» на «oun_postmeta».
Удалить 50000 записей дело не такое хитрое, как добавить 10000 записей «оптом» в WooCommerce ))
Залить как раз не проблема. Достаточно использовать плагин импорта: http://www.wpallimport.com/order-now/. С его помощью я максимально импортировал 1 400 000 товаров в WooCommerce.
Плагин очень удобен и разобраться в нём не составит труда.
Спасибо большое! Очень помогли экономить дорогоценное время!
Товары не убираются. В базе пишет:
Затронуто 0 строк. (Запрос занял 0.0012 сек.)
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘product’)
[ Построчное редактирование ] [ Изменить ] [ Создать PHP-код ]
Затронуто 0 строк. (Запрос занял 0.0315 сек.)
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘product’)
[ Построчное редактирование ] [ Изменить ] [ Создать PHP-код ]
Затронуто 0 строк. (Запрос занял 0.0005 сек.)
DELETE FROM wp_posts WHERE post_type = ‘product’
Вместе с товарами удаляются ли изображения к товарам?
К сожалению, нет. Товары удаляются из базы.
__
У вас WooCommerce нормально работает с таким кол-вом товаров? У меня без посещаемости сайт «валит» MySQL. Видимо начинает что-то делать и не справляется. Может делали какую-то оптимизацию движка?
Добрый день, Данил.
Работает нормально, но только если минимум категорий и у каждого товара по 1 категории. Если категории вложенные по 2-3 и более вложения и ещё товар состоит в каждой категории (+ хоть по одному аттрибуту есть), то даже с кешированием и на выделенном сервере работает не очень быстро.