Как создать автоматический отчет об использовании лицензий WordPress плагинов

Автоматизация отчетности по лицензиям плагинов — важный этап для разработчиков и владельцев сайтов, которые контролируют использование собственных продуктов. Такой отчет позволяет отслеживать активные лицензии, их статус и время действия, а также выявлять нарушения и помогать клиентам в поддержке. В этой статье мы подробно разберем, как создать автоматический отчет об использовании лицензий WordPress плагинов с помощью PHP, WP Cron и REST API.

Зачем нужен автоматический отчет об использовании лицензий

Отчеты позволяют систематизировать данные по активациям, деактивациям и обновлениям плагинов. Автоматизация избавляет от ручной работы и снижает риск ошибок. Такие отчеты полезны, если:

  • Вам нужно контролировать количество активных установок;
  • Вы хотите быстро реагировать на нарушения условий лицензирования;
  • Необходимо предоставлять клиентам статистику по использованию продукта;
  • Планируете интегрировать данные с CRM или другими системами.

Возможность автоматически генерировать и отправлять отчеты экономит время и упрощает поддержку.

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

Для начала нужно обеспечить централизованный сбор информации о каждой активации и деактивации лицензии. Это можно сделать через REST API вашего лицензионного сервера или внедрить на стороне плагина отправку запросов при каждом событии.

Пример функции для отправки данных о активации лицензии (функция с префиксом wplicense_):

function wplicense_send_activation_data($license_key, $site_url) {
    $endpoint = 'https://your-license-server.com/api/activation';
    $response = wp_remote_post($endpoint, [
        'body' => [
            'license_key' => $license_key,
            'site_url' => $site_url,
            'timestamp' => time(),
        ],
    ]);
    return !is_wp_error($response);
}

Такой вызов можно выполнить при активации лицензии в плагине, например, в обработчике формы или при включении плагина.

Создание задачи Cron для периодической генерации отчетов

Для автоматизации создания отчетов используйте WP Cron — встроенную систему планировщика задач WordPress. Создадим задачу, которая будет еженедельно собирать актуальные данные и формировать отчет.

Регистрация Cron задачи:

add_action('wplicense_generate_weekly_report', 'wplicense_generate_report_handler');

function wplicense_schedule_report() {
    if (!wp_next_scheduled('wplicense_generate_weekly_report')) {
        wp_schedule_event(time(), 'weekly', 'wplicense_generate_weekly_report');
    }
}
add_action('wp', 'wplicense_schedule_report');

Обработчик задачи собирает данные и сохраняет их в файл или отправляет на email:

function wplicense_generate_report_handler() {
    // Получаем данные из базы или API
    $licenses = wplicense_get_licenses_data();

    // Формируем CSV
    $csv = "License Key,Site URL,Status,Activated At\n";
    foreach ($licenses as $license) {
        $csv .= sprintf("%s,%s,%s,%s\n",
            $license['key'],
            $license['site'],
            $license['status'],
            date('Y-m-d H:i', $license['activated_at'])
        );
    }

    // Сохраняем файл
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/license_reports/report_' . date('Ymd') . '.csv';
    if (!file_exists(dirname($file_path))) {
        wp_mkdir_p(dirname($file_path));
    }
    file_put_contents($file_path, $csv);

    // Можно отправить отчет по email
    wp_mail('admin@example.com', 'Отчет по лицензиям', 'Отчет во вложении', [], [$file_path]);
}

Получение и обработка данных лицензий

Функция wplicense_get_licenses_data() может получать данные из базы данных, REST API или из файлов журнала. В простейшем варианте, если вы храните активации в отдельной таблице, запрос может выглядеть так:

function wplicense_get_licenses_data() {
    global $wpdb;
    $table = $wpdb->prefix . 'wplicense_activations';
    return $wpdb->get_results("SELECT license_key as key, site_url as site, status, activated_at FROM $table WHERE activated_at > DATE_SUB(NOW(), INTERVAL 1 MONTH)", ARRAY_A);
}

Если используете сторонний лицензионный сервер с REST API, запрос на получение данных может выглядеть так:

function wplicense_get_licenses_data() {
    $response = wp_remote_get('https://your-license-server.com/api/licenses?period=month');
    if (is_wp_error($response)) {
        return [];
    }
    $body = wp_remote_retrieve_body($response);
    return json_decode($body, true);
}

Интеграция с плагином Clearfy Pro для оптимизации работы лицензий

Для улучшения производительности и безопасности при работе с лицензиями рекомендую использовать Clearfy Pro. Он позволяет отключить ненужные запросы и оптимизировать загрузку, что особенно важно при частом взаимодействии с сервером лицензий.

Дополнительные советы по созданию отчетов и мониторингу лицензий

  • Используйте формат CSV или JSON для удобного импорта в другие системы;
  • Добавьте страницу с отчетами в админку WordPress для быстрого доступа;
  • Реализуйте фильтры по дате, статусу и домену для удобного анализа;
  • Обрабатывайте ошибки сетевых запросов и логируйте их для диагностики;
  • Регулярно очищайте устаревшие данные, чтобы не перегружать базу.

Автоматизация отчетности по лицензиям — залог прозрачности и контроля. Внедряя описанные методы, вы повысите качество поддержки и упростите управление своими продуктами.

Как отключить автоматические обновления WordPress
14.03.2026
Как удалить неактивные лицензии WordPress плагинов из базы данных
24.03.2026
Решение проблем с активацией лицензий WordPress плагинов при использовании разных средств кеширования
31.07.2026
Как автоматизировать проверку лицензий WordPress плагинов с помощью WP-Cron
21.03.2026
Решение проблем с лицензиями в WooCommerce при использовании комплексных подписок
04.05.2026