WooCommerce: автоматическое изменение названия и описания товаров при обновлении

Диагностика задачи: зачем автоматизировать изменение данных товаров

В WooCommerce часто возникает необходимость массово обновлять названия или описания товаров в зависимости от различных условий — например, добавлять штамп "Скидка" или обновлять описание при изменении цены или статуса. Делать это вручную неудобно и ресурсоёмко, особенно при большом каталоге. Автоматизация решает проблему своевременного и корректного обновления данных без ручного вмешательства.

Как отследить момент обновления товара

Для автоматического изменения названия и описания нужно поймать событие обновления товара. В WooCommerce это можно сделать с помощью хука save_post_product, который срабатывает при сохранении данных товара.

add_action('save_post_product', 'wpfront_update_product_title_description', 10, 3);

Аргументы функции обычно: ID поста, объект поста и флаг обновления.

Пошаговое решение: пример кода для автоматического изменения названия и описания

Ниже пример функции, которая добавляет к названию товара приставку " - Обновлён" и дописывает в описание текст "Обновлено автоматически" при каждом сохранении товара.

function wpfront_update_product_title_description($post_ID, $post, $update) {
    // Проверяем, что это не автосохранение
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Проверяем тип записи
    if ($post->post_type !== 'product') return;

    // Получаем текущий объект товара
    $product = wc_get_product($post_ID);
    if (!$product) return;

    // Изменяем название, если еще не содержит суффикс
    $title = $post->post_title;
    if (strpos($title, ' - Обновлён') === false) {
        $new_title = $title . ' - Обновлён';
        // Обновляем название товара
        wp_update_post(array(
            'ID' => $post_ID,
            'post_title' => $new_title
        ));
    }

    // Обновляем описание
    $description = $product->get_description();
    if (strpos($description, 'Обновлено автоматически') === false) {
        $new_description = $description . '\n\nОбновлено автоматически';
        $product->set_description($new_description);
        $product->save();
    }
}

Как добавить код

Этот код можно добавить в functions.php дочерней темы или в отдельный плагин. После этого при каждом обновлении товара название и описание будут автоматически дополняться.

Проверка результата

1. Откройте любой товар в админке WooCommerce.
2. Измените любое поле и сохраните.
3. Проверьте, что к названию добавился суффикс " - Обновлён".
4. Проверьте описание — в конце должен появиться текст "Обновлено автоматически".
5. Если изменений нет, проверьте логи ошибок и правильность подключения функции.

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

  • Бесконечный цикл обновления: если внутри хука для сохранения вызывается wp_update_post без условий, функция срабатывает повторно. Решение: проверять, не добавлен ли уже суффикс в название.
  • Отсутствие проверки типа записи: функция запускается для всех типов, что приводит к ошибкам. Решение: проверять $post->post_type === 'product'.
  • Автосохранение: если не фильтровать DOING_AUTOSAVE, код сработает при автосохранении и внесет нежелательные изменения.
  • Конфликты с другими плагинами: если другой плагин также изменяет название или описание, возможны коллизии. Проверьте порядок загрузки хуков и при необходимости используйте более высокие приоритеты.

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

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

Сравнение способов автоматического обновления данных товара

МетодПреимуществаНедостаткиПример использования
Хук save_post_productАвтоматически срабатывает при сохранении товара, прост в реализацииРиск бесконечного цикла, нагрузка при массовом обновленииАвтоматическое добавление текста к названию и описанию
WP-CLI скриптБыстрая обработка большого количества товаров, без нагрузки на сайтНе автоматичен, требует запуска вручную или по расписаниюМассовое обновление описаний перед распродажей
Пользовательский плагин с Cron задачейАвтоматизация без вмешательства пользователя, можно задать периодичностьНужно настраивать планировщик, дополнительный кодОбновление описаний каждую ночь
Как создать автоматический импорт данных из Google Sheets в WordPress
16.04.2026
Как удалить неиспользуемые поля в базе данных WordPress для оптимизации
18.02.2026
Как создать автоматические ответы на часто задаваемые вопросы в WordPress
20.12.2025
Как добавить автоматическое заполнение формы в WordPress
09.02.2026
Как автоматически изменять атрибуты варианта товара в WooCommerce при изменении запаса
22.05.2026