Как использовать WP-CLI для массового изменения метаполей и цен в WooCommerce

Диагностика задачи: почему нужен массовый апдейт через WP-CLI

В проектах на WooCommerce часто возникает необходимость массово изменить метаполя товаров, например, обновить цены, добавить кастомные атрибуты или очистить устаревшие данные. Вручную это сделать невозможно без риска ошибок и потери времени. WP-CLI — мощный инструмент, который позволяет автоматизировать эти задачи через командную строку, минуя админку.

Подготовка к массовому изменению метаполей и цен товаров

Проверка наличия WP-CLI и его совместимости с WordPress

Убедитесь, что на сервере установлен WP-CLI и он работает. Выполните в терминале:

wp --info

Если команда выдает информацию о версии, значит инструмент доступен.

Резервное копирование базы данных

Перед массовыми изменениями всегда делайте бэкап базы. Например:

wp db export backup-before-mass-update.sql

Пошаговое массовое изменение метаполей в WooCommerce через WP-CLI

1. Получение ID товаров

Для массового обновления нужны ID продуктов. Чтобы получить все ID товаров, используйте:

wp post list --post_type=product --format=ids

2. Массовое обновление метаполей

Например, нужно массово установить метаполе _custom_meta_key со значением new_value для всех товаров:

for product_id in $(wp post list --post_type=product --format=ids); do
  wp post meta update $product_id _custom_meta_key new_value
 done

3. Массовое изменение цен

Допустим, нужно повысить цену всех товаров на 10%. Для этого можно получить текущую цену из метаполя _price, вычислить новую и обновить:

for product_id in $(wp post list --post_type=product --format=ids); do
  current_price=$(wp post meta get $product_id _price)
  new_price=$(echo "$current_price * 1.1" | bc -l)
  wp post meta update $product_id _price $new_price
  wp post meta update $product_id _regular_price $new_price
 done

Обратите внимание, что цены нужно обновлять и в _price, и в _regular_price, чтобы WooCommerce корректно отобразил новые значения.

Проверка результата после внедрения

Проверьте несколько товаров через админку WooCommerce или через консоль:

wp post meta get 123 _price
wp post meta get 123 _custom_meta_key

Где 123 — ID тестового товара. Убедитесь, что значения обновились корректно.

Частые ошибки и как их исправить

  • Ошибка: WP-CLI не установлен или не работает.
    Решение: Установите WP-CLI согласно официальной инструкции.
  • Ошибка: Команды не обновляют цены, WooCommerce показывает старые данные.
    Решение: Обязательно обновляйте _price и _regular_price, иногда требуется очистить кеш плагинов кеширования.
  • Ошибка: Ошибки в bash-циклах из-за неправильной обработки чисел с плавающей точкой.
    Решение: Используйте bc для математических вычислений в shell.

Практические советы по безопасности и производительности

  • Всегда делайте резервную копию базы перед массовыми изменениями.
  • Проводите обновления в нерабочее время, чтобы минимизировать нагрузку на сервер.
  • При большом количестве товаров разбивайте обновления на пакеты, например, по 100 товаров за раз, чтобы избежать переполнения памяти и таймаутов.
  • Для сложных вычислений и условий рассмотрите написание кастомного PHP-скрипта с использованием WP-CLI команд.

Сравнение методов массового обновления метаполей и цен в WooCommerce

МетодПлюсыМинусыКогда использовать
WP-CLI скриптБыстро, без нагрузки на админку, гибкоТребует доступа к серверу и базовых навыков bashБольшие объемы товаров, регулярные обновления
Плагины массового редактированияУдобство через интерфейс, не требует терминалаМогут быть медленными, нагрузка на сайтМалое количество товаров, разовые задачи
Кастомные PHP-скриптыМаксимальная гибкость, интеграция с бизнес-логикойТребует программирования, тестированияСложные условия обновления
Как удалить неиспользуемые метаполя в WooCommerce и ускорить сайт
20.05.2026
Как использовать WP REST API для автоматического обновления товаров WooCommerce
01.05.2026
Автоматическое отслеживание изменений остатков товаров в WooCommerce
04.05.2026
Как использовать хуки для расширения функционала WordPress
18.12.2025
Как автоматически удалять старые черновики в WordPress
09.04.2026