Команды WP-CLI
WP-CLI — консольная программа для управления WordPress. WooCommerce добавляет к ней группу команд wp wc: товары, заказы и покупателей можно читать и менять без панели. Это удобно для скриптов развёртывания, массовых операций и работы на сервере без браузера.
Первый запуск
Команды выполняют в папке сайта:
wp wc product list --user=1 --fields=id,name,price,stock_quantityКоманда печатает таблицу товаров с четырьмя столбцами. Параметр --user обязателен для всех команд wp wc: это идентификатор или логин пользователя с правами управления магазином, от имени которого выполняется операция.
Как устроены команды
Команды повторяют REST API: имя ресурса, затем действие.
| Действие | Что делает |
|---|---|
list | Список |
get <id> | Одна запись |
create | Создание |
update <id> | Изменение |
delete <id> | Удаление |
| Ресурс | Что это |
|---|---|
product | Товары |
product_variation | Вариации |
product_cat | Категории |
shop_order | Заказы |
customer | Покупатели |
shop_coupon | Купоны |
Все параметры ресурса показывает справка: wp wc product create --help.
Товары
wp wc product create --name="Блюдце" --regular_price=4.50 --sku=SAUCER-001 --user=1
wp wc product update 12 --regular_price=12.90 --stock_quantity=20 --user=1
wp wc product get 12 --fields=id,name,price --user=1Первая команда создаёт товар и печатает его идентификатор, вторая меняет цену и остаток, третья показывает результат. Параметры называются так же, как поля REST API.
Заказы
wp wc shop_order list --status=processing --fields=id,total,date_created --user=1
wp wc shop_order update 1024 --status=completed --user=1Первая команда выводит оплаченные заказы, вторая переводит заказ 1024 в «Выполнен» — со всеми хуками и письмами, как при смене состояния в панели.
Формат вывода
wp wc product list --user=1 --format=json
wp wc product list --user=1 --format=ids
wp wc product list --user=1 --format=csv > products.csvКроме таблицы есть json, csv, ids и count. Формат ids удобно передавать в другую команду, csv — сохранять в файл.
Служебные команды
| Команда | Что делает |
|---|---|
wp wc update | Обновляет таблицы базы после обновления плагина |
wp wc tool list --user=1 | Список инструментов со страницы «Статус → Инструменты» |
wp wc tool run clear_transients --user=1 | Очищает кеш WooCommerce |
wp wc hpos status | Состояние хранилища заказов HPOS |
wp action-scheduler run | Выполняет очередь фоновых задач |
Собственная команда
Плагин может добавить свою команду. Создайте файл includes/cli.php и подключите его в acme-shop.php:
// wp-content/plugins/acme-shop/includes/cli.php
if (defined('WP_CLI') && WP_CLI) {
WP_CLI::add_command('acme low-stock', function () {
$products = wc_get_products(['manage_stock' => true, 'limit' => 100]);
foreach ($products as $product) {
if ($product->get_stock_quantity() < 5) {
WP_CLI::line($product->get_id() . ' ' . $product->get_name() . ': ' . $product->get_stock_quantity());
}
}
WP_CLI::success('Готово.');
});
}Проверка WP_CLI не даёт коду выполняться при обычных запросах сайта. Запустите wp acme low-stock — команда напечатает товары, которых осталось меньше пяти.
Частая ошибка
Команду запускают без --user и получают ошибку о недостатке прав: «Sorry, you cannot list resources». Команды wp wc проходят те же проверки прав, что и REST API, а консоль по умолчанию работает без пользователя. Добавляйте --user=1 или логин администратора к каждой команде.