Смотрим какие есть решения для массового изменения цен товаров Woocommerce. В данной статье центральное внимание направлено именно на изменение цены, а не на изменение различных свойств товара.
Плагин WooCommerce Prices (2000)
Плагин давно не поддерживается. Но функционал у него хороший. Можно менять массово цены, накидывать и убавлять у групп товаров цены как в процентах. так и в фиксированной цифре.
Но главным недостатком является то что он не работает с вариативными товарами.
Изменение цен у вариативных товаров
В дополнение к предыдущему плагину можно использовать платный плагин Woocommerce Bulk Edit Variable Products & Prices (25$ 10/03/2020). Он дает возможность отфильтровать товары нужным образом и применить (увеличить, либо уменьшить) процент или точное значение к цене (как обычной, так и акционной). Есть возможность изменить и другие свойства товара: SKU, Stock, Weight, Length, Width, Height.
Также плагином можно менять и обычные не вариативные товары (нужно изменить настройку Also Update Simple Products?). т.е. необходимости в прочих плагинах нет.
Но есть ложка дегтя (по крайней мере в версии 2.6, с включенным DEBUG) ошибка:
Она никак не влияет на работу, но это не приятно.
Изменение цен из базы данных
SQL-запрос:
update wp_postmeta set meta_value = meta_value * 1.135 where meta_key='_price'
В данном примере цены увеличатся на 13,5%. Если нужно уменьшить, меняем знак * на /.
Все ценовые поля Woocommerce:
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_regular_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_sale_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_min_variation_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_max_variation_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_min_variation_regular_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_max_variation_regular_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_min_variation_sale_price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '.') WHERE meta_key = '_max_variation_sale_price';
[site-socialshare]