Как сделать автоматическую синхронизацию оповещений WordPress между сайтами

Почему важна синхронизация оповещений WordPress

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

Без синхронизации вы рискуете потерять важные оповещения или пропустить критические события, что негативно скажется на управлении и пользовательском опыте.

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

Основные подходы к синхронизации оповещений между сайтами WordPress

Использование REST API для передачи оповещений

REST API в WordPress позволяет создавать, получать и обновлять данные между сайтами. Мы можем использовать его для отправки оповещений с одного сайта на другой в момент их создания.

Для этого на сайте-источнике нужно создать endpoint, который будет принимать данные оповещения, а на сайте-получателе — endpoint для их обработки и сохранения.

Пример создания собственного endpoint для приёма оповещений:

add_action('rest_api_init', function() {
  register_rest_route('wpsync/v1', '/notifications', array(
    'methods' => 'POST',
    'callback' => 'wpsync_handle_notification',
    'permission_callback' => '__return_true',
  ));
});

function wpsync_handle_notification(WP_REST_Request $request) {
  $data = $request->get_json_params();
  // Здесь логика сохранения оповещения
  // Например, создать пользовательское уведомление или пост типа notification
  return new WP_REST_Response(['success' => true], 200);
}

На сайте-источнике при создании оповещения вызываем запрос к этому endpoint, передавая данные.

Использование WP-Cron для периодической синхронизации

Если оповещения генерируются нечасто или необходимо синхронизировать пакетно, удобно использовать WP-Cron — систему планировщика задач в WordPress.

Можно настроить периодический запрос на получение новых оповещений с удалённого сайта и импортировать их локально.

Пример кода для добавления cron-задачи:

function wpsync_schedule_notification_sync() {
  if (!wp_next_scheduled('wpsync_cron_sync_notifications')) {
    wp_schedule_event(time(), 'hourly', 'wpsync_cron_sync_notifications');
  }
}
add_action('wp', 'wpsync_schedule_notification_sync');

add_action('wpsync_cron_sync_notifications', 'wpsync_do_sync_notifications');

function wpsync_do_sync_notifications() {
  $response = wp_remote_get('https://remote-site.ru/wp-json/wpsync/v1/notifications?since=' . get_option('wpsync_last_sync'));
  if (is_wp_error($response)) return;
  $notifications = json_decode(wp_remote_retrieve_body($response), true);
  if (!$notifications) return;

  foreach ($notifications as $notification) {
    // Логика сохранения оповещения
  }

  update_option('wpsync_last_sync', time());
}

Практические плагины для синхронизации оповещений

Кроме ручного кода, есть плагины, которые облегчают задачу:

  • WP Webhooks — позволяет отправлять и принимать вебхуки для различных событий WordPress, включая уведомления. Можно настроить автоматическую передачу оповещений между сайтами.
  • Push Notifications for WordPress (Lite) — удобный инструмент для управления push-уведомлениями, поддерживает мультисайтовую структуру.
  • Clearfy Pro — включает в себя множество оптимизаций и инструментов для управления уведомлениями и их синхронизацией, подходит для продвинутых пользователей.

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

Пример кода: синхронизация кастомных оповещений с помощью REST API

Рассмотрим пример, когда на одном сайте создаётся кастомное оповещение (пост типа notification), которое нужно отправить другому сайту.

1. На сайте-отправителе добавляем хук, который срабатывает при публикации уведомления и отправляет данные:

function wpsync_send_notification_on_publish($post_ID, $post) {
  if ($post->post_type !== 'notification') return;

  $data = [
    'title' => $post->post_title,
    'content' => $post->post_content,
    'date' => $post->post_date,
  ];

  wp_remote_post('https://remote-site.ru/wp-json/wpsync/v1/notifications', [
    'body' => json_encode($data),
    'headers' => ['Content-Type' => 'application/json'],
  ]);
}
add_action('publish_notification', 'wpsync_send_notification_on_publish', 10, 2);

2. На сайте-получателе создаём REST endpoint для приёма и сохранения:

add_action('rest_api_init', function() {
  register_rest_route('wpsync/v1', '/notifications', array(
    'methods' => 'POST',
    'callback' => 'wpsync_receive_notification',
    'permission_callback' => '__return_true',
  ));
});

function wpsync_receive_notification(WP_REST_Request $request) {
  $data = $request->get_json_params();

  $post_id = wp_insert_post([
    'post_type' => 'notification',
    'post_title' => sanitize_text_field($data['title']),
    'post_content' => wp_kses_post($data['content']),
    'post_status' => 'publish',
    'post_date' => sanitize_text_field($data['date']),
  ]);

  if (is_wp_error($post_id)) {
    return new WP_REST_Response(['error' => 'Ошибка при сохранении'], 500);
  }

  return new WP_REST_Response(['success' => true], 200);
}

Рекомендации по безопасности и производительности

При настройке синхронизации важно учитывать безопасность передачи данных. Используйте аутентификацию REST API (например, OAuth, JWT или Basic Auth с SSL) для защиты endpoint.

Также контролируйте нагрузку на сервер, особенно если оповещений много — настройте кэширование и лимиты запросов.

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

Итоги по автоматической синхронизации оповещений WordPress

Автоматическая синхронизация оповещений между сайтами позволяет централизовать управление уведомлениями, повысить оперативность реакции на события и улучшить опыт пользователей. Использование REST API вместе с WP-Cron даёт гибкий и мощный инструмент для реализации таких задач.

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

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

Как сделать автоматическую синхронизацию оповещений WordPress между сайтами
24.03.2026
Как синхронизировать данные в WordPress при помощи WP-CLI
05.02.2026
Как удалить неиспользуемые плагины в WordPress без риска для сайта
26.11.2025
Как синхронизировать заказы WooCommerce со сторонними складскими системами
22.04.2026
Автоматическая синхронизация изображений WordPress между сайтами
24.02.2026