Как создать автоматический отчет о входах в WordPress

Ведение учёта входов пользователей в WordPress — важная задача для администраторов сайтов, особенно когда нужно отслеживать активность, выявлять подозрительные попытки авторизации или просто анализировать поведение пользователей. В этой статье мы разберём, как создать автоматический отчет о входах в WordPress с помощью собственного кода и полезных плагинов.

Почему важно вести отчет о входах в WordPress

Отчёт о входах позволяет иметь подробную статистику о том, кто и когда заходил на сайт. Это помогает:

  • Отслеживать попытки несанкционированного доступа;
  • Анализировать активность пользователей;
  • Автоматизировать уведомления о входах для администраторов;
  • Вести аудит безопасности.

Нередко администраторы используют сторонние сервисы, но их можно заменить собственным решением, полностью контролируемым и кастомизируемым под ваши нужды.

Реализация автоматического отчета с помощью кода

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

Пример функции, которая сохраняет данные о входе в кастомную таблицу:

function wplogin_save_login_record($user_login, $user) {
    global $wpdb;
    $table = $wpdb->prefix . 'wplogin_logins';
    $wpdb->insert(
        $table,
        array(
            'user_id' => $user->ID,
            'user_login' => $user_login,
            'login_time' => current_time('mysql'),
            'user_ip' => $_SERVER['REMOTE_ADDR']
        ),
        array('%d', '%s', '%s', '%s')
    );
}
add_action('wp_login', 'wplogin_save_login_record', 10, 2);

Для начала нужно создать таблицу wp_wplogin_logins в базе данных, в которой будут храниться записи:

function wplogin_create_logins_table() {
    global $wpdb;
    $table = $wpdb->prefix . 'wplogin_logins';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table (
        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
        user_id BIGINT(20) UNSIGNED NOT NULL,
        user_login VARCHAR(60) NOT NULL,
        login_time DATETIME NOT NULL,
        user_ip VARCHAR(45) NOT NULL,
        PRIMARY KEY (id),
        KEY user_id (user_id),
        KEY login_time (login_time)
    ) $charset_collate;";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
register_activation_hook(__FILE__, 'wplogin_create_logins_table');

Этот код создаст таблицу при активации плагина, а функция wplogin_save_login_record будет записывать информацию о каждом успешном входе пользователя.

Создание страницы отчета в админке

Чтобы просматривать отчеты, добавим страницу в админ-панель:

function wplogin_add_admin_menu() {
    add_menu_page(
        'Отчёт о входах',
        'Отчёт о входах',
        'manage_options',
        'wplogin-login-report',
        'wplogin_render_report_page',
        'dashicons-analytics',
        30
    );
}
add_action('admin_menu', 'wplogin_add_admin_menu');

function wplogin_render_report_page() {
    global $wpdb;
    $table = $wpdb->prefix . 'wplogin_logins';
    $results = $wpdb->get_results("SELECT * FROM $table ORDER BY login_time DESC LIMIT 50");

    echo '<h1>Отчёт о входах пользователей</h1>';
    echo '<table class="widefat fixed">';
    echo '<thead><tr><th>ID</th><th>Пользователь</th><th>Дата и время</th><th>IP-адрес</th></tr></thead>';
    echo '<tbody>';
    foreach ($results as $row) {
        echo "<tr><td>{$row->id}</td><td>{$row->user_login}</td><td>{$row->login_time}</td><td>{$row->user_ip}</td></tr>";
    }
    echo '</tbody></table>';
}

Теперь в админке будет доступен раздел с последними 50 входами пользователей — удобный инструмент для мониторинга.

Использование плагинов для отчетов о входах

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

  • WP Activity Log — мощный инструмент для аудита активности пользователей, включая входы и выходы;
  • Simple Login Log — легкий плагин для записи успешных и неудачных попыток входа;
  • Audit Log — комплексное решение для отслеживания действий пользователей.

Эти плагины позволяют не только хранить логи, но и автоматически отправлять уведомления, фильтровать данные и экспортировать отчеты.

Пример настройки WP Activity Log

Установите плагин WP Activity Log и перейдите в настройки. В разделе Login Activity активируйте запись событий входа. Можно настроить уведомления на почту или Slack, чтобы сразу получать оповещения о подозрительных действиях.

Дополнительные улучшения и советы

Для повышения информативности и безопасности можно добавить следующие функции:

  • Фильтрация по IP и дате — расширьте отчет, добавив фильтры для удобного поиска;
  • Отправка еженедельных отчетов на email — реализуйте с помощью WP-Cron регулярную отправку сводок;
  • Защита данных — ограничьте доступ к отчетам только администраторам;
  • Интеграция с плагинами безопасности — например, Clearfy Pro помогает оптимизировать и обезопасить сайт.

Пример кода для отправки еженедельного отчета:

function wplogin_send_weekly_report() {
    global $wpdb;
    $table = $wpdb->prefix . 'wplogin_logins';
    $last_week = date('Y-m-d H:i:s', strtotime('-7 days'));
    $results = $wpdb->get_results($wpdb->prepare(
        "SELECT * FROM $table WHERE login_time >= %s ORDER BY login_time DESC",
        $last_week
    ));

    $message = "Отчет о входах за последнюю неделю:\n";
    foreach ($results as $row) {
        $message .= "Пользователь: {$row->user_login}, Время: {$row->login_time}, IP: {$row->user_ip}\n";
    }

    wp_mail(get_option('admin_email'), 'Еженедельный отчет о входах', $message);
}

if (!wp_next_scheduled('wplogin_weekly_report_hook')) {
    wp_schedule_event(time(), 'weekly', 'wplogin_weekly_report_hook');
}
add_action('wplogin_weekly_report_hook', 'wplogin_send_weekly_report');

Этот код отправляет администратору письмо с логами за неделю — удобно и информативно.

Итоги

Создание автоматического отчета о входах в WordPress можно реализовать как самостоятельно, написав легкий плагин с сохранением данных в базе и выводом отчета в админке, так и с помощью специализированных плагинов, которые предложат расширенный функционал и интеграции. Такой подход повышает уровень контроля над сайтом и помогает вовремя реагировать на подозрительную активность.

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

Как исправить проблемы входа в WordPress при использовании WooCommerce
31.07.2026
Как добавить логины через соцсети в WordPress
26.02.2026
Как использовать хук authenticate для дополнительной проверки при входе в WordPress
24.07.2026
Как исправить проблемы с входом в WordPress при использовании WooCommerce
11.07.2026
Как отключить доступ к wp-login.php для определённых ролей пользователей в WordPress
26.04.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.