Автоматизация отчетности по лицензиям плагинов — важный этап для разработчиков и владельцев сайтов, которые контролируют использование собственных продуктов. Такой отчет позволяет отслеживать активные лицензии, их статус и время действия, а также выявлять нарушения и помогать клиентам в поддержке. В этой статье мы подробно разберем, как создать автоматический отчет об использовании лицензий 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 для быстрого доступа;
- Реализуйте фильтры по дате, статусу и домену для удобного анализа;
- Обрабатывайте ошибки сетевых запросов и логируйте их для диагностики;
- Регулярно очищайте устаревшие данные, чтобы не перегружать базу.
Автоматизация отчетности по лицензиям — залог прозрачности и контроля. Внедряя описанные методы, вы повысите качество поддержки и упростите управление своими продуктами.