Как создать автоматические уведомления в WordPress с помощью AJAX

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

Что такое AJAX и почему он нужен для уведомлений в WordPress

AJAX (Asynchronous JavaScript and XML) позволяет обмениваться данными с сервером и обновлять часть страницы без её полной перезагрузки. Для уведомлений это важно, чтобы пользователь получал свежую информацию мгновенно, не покидая текущую страницу.

В WordPress AJAX реализуется через специальные хуки и функции, которые обеспечивают безопасность и удобство работы с сервером.

Использование AJAX для уведомлений позволяет реализовать:

  • Автоматическое обновление уведомлений в реальном времени.
  • Уменьшение нагрузки на сервер и трафика, обновляя только необходимую часть страницы.
  • Повышение удобства и вовлечённости пользователей.

Создаём базовую структуру уведомлений

Для начала создадим простой блок уведомлений в шаблоне темы. Например, добавим в файл header.php или в нужное место следующую разметку:

<div id="hueman-notifications">Загрузка уведомлений...</div>

Этот блок будет динамически наполняться через AJAX.

Подключаем AJAX в WordPress: JavaScript и PHP

Добавим JavaScript-код, который будет запрашивать уведомления с сервера и обновлять блок. Для этого лучше использовать собственный файл скрипта, например, notifications.js, который подключим в теме через функцию hueman_enqueue_notifications_script():

function hueman_enqueue_notifications_script() {
    wp_enqueue_script('hueman-notifications', get_template_directory_uri() . '/js/notifications.js', array('jquery'), '1.0', true);
    wp_localize_script('hueman-notifications', 'hueman_ajax_object', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('hueman_notifications_nonce'),
    ));
}
add_action('wp_enqueue_scripts', 'hueman_enqueue_notifications_script');

В файле notifications.js разместим следующий код:

jQuery(document).ready(function($) {
    function hueman_fetch_notifications() {
        $.ajax({
            url: hueman_ajax_object.ajax_url,
            type: 'POST',
            data: {
                action: 'hueman_get_notifications',
                nonce: hueman_ajax_object.nonce
            },
            success: function(response) {
                if(response.success) {
                    $('#hueman-notifications').html(response.data);
                } else {
                    $('#hueman-notifications').html('Нет новых уведомлений');
                }
            },
            error: function() {
                $('#hueman-notifications').html('Ошибка загрузки уведомлений');
            }
        });
    }

    // Первичная загрузка уведомлений
    hueman_fetch_notifications();

    // Обновлять каждые 30 секунд
    setInterval(hueman_fetch_notifications, 30000);
});

Этот скрипт отправляет AJAX-запрос на сервер каждые 30 секунд и обновляет содержимое блока уведомлений.

Обработка AJAX-запроса на сервере в WordPress

Создадим обработчик AJAX-запроса в файле functions.php темы:

function hueman_ajax_get_notifications() {
    check_ajax_referer('hueman_notifications_nonce', 'nonce');

    // Здесь можно получить уведомления из базы, например, новые комментарии или сообщения
    // Для примера вернём простое сообщение
    $notifications = '<ul><li>Новое сообщение от пользователя Иван</li><li>Комментарий одобрен</li></ul>';

    if($notifications) {
        wp_send_json_success($notifications);
    } else {
        wp_send_json_error();
    }
}
add_action('wp_ajax_hueman_get_notifications', 'hueman_ajax_get_notifications');
add_action('wp_ajax_nopriv_hueman_get_notifications', 'hueman_ajax_get_notifications');

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

Пример расширения: получение уведомлений из комментариев

Давайте сделаем пример, где уведомления выводят последние 3 одобренных комментария, которые ещё не видел пользователь (логика упрощённая):

function hueman_ajax_get_notifications() {
    check_ajax_referer('hueman_notifications_nonce', 'nonce');

    $current_user_id = get_current_user_id();

    // Получаем последние 3 комментария
    $comments = get_comments(array(
        'number' => 3,
        'status' => 'approve',
        'post_status' => 'publish',
        'orderby' => 'comment_date_gmt',
        'order' => 'DESC'
    ));

    if(empty($comments)) {
        wp_send_json_error();
    }

    $output = '<ul>';
    foreach($comments as $comment) {
        $output .= '<li>' . esc_html($comment->comment_author) . ' оставил комментарий к <a href="' . esc_url(get_permalink($comment->comment_post_ID)) . '">' . esc_html(get_the_title($comment->comment_post_ID)) . '</a></li>';
    }
    $output .= '</ul>';

    wp_send_json_success($output);
}

Можно дополнительно расширить систему, сохраняя мета-данные о просмотренных уведомлениях и показывая только новые.

Использование плагинов для уведомлений и интеграция с темой Hueman

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

Также плагин Quizle может использоваться для создания интерактивных оповещений после прохождения тестов или опросов.

Интеграция с темой Hueman требует учитывать её стили и структуру, чтобы уведомления выглядели органично и не ломали дизайн.

Заключение по реализации AJAX-уведомлений в WordPress

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

Используйте данный подход для повышения вовлечённости пользователей и улучшения интерактивности сайта. Для удобства и ускорения разработки обратите внимание на готовые решения из каталога WPShop.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать WooCommerce хуки для автоматического изменения товаров в корзине
30.05.2026
Как использовать Multiple Checkout в WooCommerce для разных типов клиентов
17.04.2026
Автоматическое обновление темы Hueman в WordPress: практическое руководство
05.02.2026
Как создать динамические поля в WordPress для расширения форм
09.01.2026
Как автоматизировать создание резервных копий в WordPress: практическое руководство
16.11.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее