Диагностика проблемы: зачем экспортировать и импортировать настройки WooCommerce
При переносе магазина WooCommerce с одного сайта на другой или при необходимости сохранить резервную копию текущих настроек часто возникает задача экспортировать все пользовательские параметры. Встроенных инструментов WooCommerce для экспорта/импорта настроек нет — они хранятся в базе данных в виде опций WordPress, и ручная работа с ними требует аккуратности.
Чаще всего нужно перенести настройки из разделов WooCommerce → Настройки, включая общие параметры, налоги, платежи и прочее, чтобы быстро восстановить работу магазина без ручного копирования.
Как найти нужные опции WooCommerce для экспорта
Все настройки WooCommerce хранятся в таблице wp_options с префиксами:
woocommerce_*— основные настройки;woocommerce_tax_*— налоговые настройки;woocommerce_gateway_*— настройки платежных шлюзов;woocommerce_shipping_*— настройки доставки;woocommerce_checkout_*— настройки оформления заказа;- и прочие, связанные с WooCommerce.
Для надежного экспорта лучше получить все опции, начинающиеся на woocommerce_. В PHP это делается вот так:
$options = $wpdb->get_results("SELECT option_name, option_value FROM {$wpdb->options} WHERE option_name LIKE 'woocommerce_%'");Пошаговое решение: экспорт и импорт настроек WooCommerce с помощью кода
1. Экспорт настроек в JSON-файл
Создайте PHP-скрипт (например, в виде отдельного файла или WP CLI команды), который соберет все опции и сохранит в файл.
global $wpdb;
$options = $wpdb->get_results("SELECT option_name, option_value FROM {$wpdb->options} WHERE option_name LIKE 'woocommerce_%'");
$data = [];
foreach ($options as $option) {
$data[$option->option_name] = maybe_unserialize($option->option_value);
}
file_put_contents(__DIR__ . '/woocommerce-settings-export.json', json_encode($data, JSON_PRETTY_PRINT));
2. Импорт настроек из JSON-файла
Для импорта создайте скрипт, который прочитает JSON и обновит опции в базе данных.
$json = file_get_contents(__DIR__ . '/woocommerce-settings-export.json');
$settings = json_decode($json, true);
if (!empty($settings) && is_array($settings)) {
foreach ($settings as $name => $value) {
update_option($name, $value);
}
}
Как проверить, что экспорт и импорт настроек сработали
- После экспорта в JSON-файле должны быть все опции с ключами, начинающимися на
woocommerce_. - После импорта зайдите в админку WooCommerce → Настройки, проверьте, что параметры совпадают с исходным сайтом.
- В базе данных можно выполнить запрос для проверки ключей и значений.
- Проверьте работоспособность платежей, налогов, доставки — если настройки корректно импортированы, функционал не должен ломаться.
Частые ошибки и как их исправить
- Ошибка: файл JSON пустой или содержит некорректный JSON. Проверьте права на запись/чтение файла, убедитесь, что
json_encodeиjson_decodeне возвращают false. - Некорректный сериализованный формат. При сохранении опций WooCommerce используют сериализацию. При экспорте используйте
maybe_unserialize, при импортеupdate_optionавтоматически сериализует данные. - Обновления не применились. Проверьте, что скрипты запускаются с достаточными правами. Если используете WP CLI — запускайте от имени администратора.
- Не перенеслись настройки платежных шлюзов. Некоторые плагины платежей используют собственные таблицы или опции с другим префиксом — нужно получить их отдельно.
Практические советы по безопасности и производительности
- Не храните экспортированные JSON-файлы в публичной части сайта — защитите их .htaccess или переместите за пределы root.
- Перед импортом сделайте резервную копию базы данных.
- Не запускайте импорт на живом сайте без тестирования — лучше на тестовом окружении.
- Для больших магазинов с объемными настройками можно разбить экспорт на части, чтобы не превышать лимиты памяти PHP.
Сравнение способов экспорта/импорта настроек WooCommerce
| Метод | Преимущества | Недостатки |
|---|---|---|
| Ручной экспорт из базы (SQL dump) | Полный контроль, можно выбрать любые таблицы и данные | Сложность, риск ошибок, требует знаний SQL |
| Экспорт опций через PHP (как в статье) | Автоматизация, легко повторять, подходит для настроек WooCommerce | Не переносит данные из плагинов сторонних платежей и доставок |
| Использование плагинов (например, WP All Export) | Интерфейс, дополнительные опции, поддержка экспорта товаров и заказов | Часто платные, может быть избыточно для простых настроек |