Как создать автоматический отчет об использовании лицензий 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 плагинов с распределением по пользователям
21.02.2026
Решение проблем с проверкой лицензии в WooCommerce плагинах WordPress
25.04.2026
Как удалить записи по типам со стороны базы данных WordPress
18.02.2026
Как автоматизировать отзыв лицензий WordPress плагинов по IP адресу
04.02.2026
Как сделать ограничение активации лицензии WordPress плагина по стране
18.03.2026