Как удалить старые лицензии WordPress плагинов из базы данных

Если вы управляете лицензиями плагинов 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.

Как добавить ограничение по домену в лицензии WordPress плагинов
11.02.2026
Решение проблем с лицензиями в WooCommerce при использовании комплексных подписок
04.05.2026
Как сделать очистку базы данных от устаревших лицензий WordPress плагинов
02.04.2026
Как установить ограничение на лицензию WordPress плагина по геолокации
20.04.2026
Оптимальные настройки WordPress для управления лицензиями плагинов
02.12.2025