Если вы управляете лицензиями плагинов WordPress, рано или поздно возникает необходимость очистить базу данных от устаревших или неактивных лицензий. Это поможет снизить нагрузку на сервер, улучшить производительность и избежать путаницы при проверках активаций. В этой статье мы подробно рассмотрим, как безопасно и эффективно удалить старые лицензии плагинов из базы данных WordPress с помощью кода и сторонних инструментов.
Почему важно удалять старые лицензии из базы данных WordPress
Со временем в базе данных накапливаются записи о лицензиях, которые уже не используются — например, истекшие по сроку действия, отозванные или принадлежащие удалённым пользователям. Если не очищать эти данные, могут возникнуть проблемы:
- Избыточная нагрузка на базу данных при проверках и запросах;
- Ошибки в активации, когда сервер лицензий не может корректно определить валидность;
- Проблемы с аналитикой и отчетами об использовании лицензий;
- Уязвимости при хранении неактуальных данных.
Регулярная очистка базы данных повышает стабильность и безопасность вашего лицензионного сервера.
Где хранятся лицензии WordPress плагинов в базе данных
Место хранения лицензий зависит от реализации вашего лицензионного сервера или плагина. Чаще всего используют следующие варианты:
- Таблица wp_options — лицензии хранятся в виде сериализованных массивов или отдельных опций;
- Отдельные таблицы — например, wp_plugin_licenses, созданные специально для лицензий;
- Пользовательские метаданные — лицензии связаны с пользователями через wp_usermeta;
- Транзиенты — временные данные активаций, которые тоже стоит периодически очищать.
Перед удалением обязательно сделайте резервную копию базы данных.
Удаление старых лицензий с помощью WP-CLI и SQL-запросов
Самый быстрый способ — использовать WP-CLI или прямые SQL-запросы. Рассмотрим пример для таблицы wp_plugin_licenses, где есть поле last_active с датой последней активации лицензии.
Удалим лицензии, неактивные более 180 дней:
wp db query "DELETE FROM wp_plugin_licenses WHERE last_active < DATE_SUB(NOW(), INTERVAL 180 DAY);"Или через PHPMyAdmin выполнить аналогичный запрос:
DELETE FROM wp_plugin_licenses WHERE last_active < DATE_SUB(NOW(), INTERVAL 180 DAY);Если лицензии хранятся в опциях, потребуется более сложный подход — разбирать сериализованные данные.
Пример функции для удаления старых лицензий из опций WordPress
Ниже пример PHP-функции, которая очищает устаревшие лицензии, хранящиеся в опции wplicense_licenses в виде массива с датой активации:
function wplicense_delete_old_licenses() {
$licenses = get_option('wplicense_licenses', []);
$threshold = strtotime('-180 days');
$changed = false;
foreach ($licenses as $key => $license) {
if (isset($license['last_active']) && strtotime($license['last_active']) < $threshold) {
unset($licenses[$key]);
$changed = true;
}
}
if ($changed) {
update_option('wplicense_licenses', $licenses);
}
}
// Запуск функции при инициализации админки
add_action('admin_init', 'wplicense_delete_old_licenses');Этот код можно адаптировать под структуру вашей базы данных или плагина. Рекомендуется запускать очистку по расписанию с помощью WP-Cron.
Использование плагина Clearfy Pro для управления лицензиями и очисткой базы
Если вы хотите удобное решение без ручного кодинга, обратите внимание на плагин Clearfy Pro. Он позволяет оптимизировать базу данных, удалять неиспользуемые записи, включая старые лицензии, и повышать безопасность сайта.
Основные преимущества Clearfy Pro:
- Автоматическое удаление устаревших данных;
- Оптимизация таблиц базы данных;
- Безопасность через ограничение доступа к REST API;
- Интуитивный интерфейс для управления лицензиями и настройками.
Для лицензионных серверов это отличный инструмент, который экономит время и ресурсы.
Как создать собственный WP-Cron для автоматической очистки лицензий
Для регулярного удаления старых лицензий можно настроить WP-Cron, который будет запускать функцию очистки автоматически, например, раз в неделю.
// Регистрируем задачу
function wplicense_schedule_cleanup() {
if (!wp_next_scheduled('wplicense_cleanup_event')) {
wp_schedule_event(time(), 'weekly', 'wplicense_cleanup_event');
}
}
add_action('wp', 'wplicense_schedule_cleanup');
// Хук для очистки
add_action('wplicense_cleanup_event', 'wplicense_delete_old_licenses');Так вы забудете о ручной очистке, и база будет всегда в порядке.
Заключение
Удаление старых лицензий из базы данных — важный этап поддержки лицензионного сервера WordPress плагинов. Правильный подход к хранению данных, регулярная очистка с помощью кода или плагинов, а также автоматизация через WP-Cron помогут поддерживать стабильность и безопасность вашего сайта.
Если нужна дополнительная помощь с лицензиями, рекомендуем ознакомиться с плагинами и инструментами на WPShop.ru.