Интеграция Telegram с WordPress становится всё более востребованной для получения мгновенных уведомлений о событиях на сайте — новых заявках, комментариях, заказах и других действиях. В этой статье мы разберем, как настроить отправку сообщений в Telegram из WordPress без использования плагинов, используя только PHP и API Telegram.
Почему использовать Telegram уведомления в WordPress
Telegram – популярный мессенджер с высокой скоростью доставки сообщений и удобным API. Использование Telegram для уведомлений позволяет:
- Мгновенно получать важные сообщения о событиях сайта;
- Избавиться от громоздких email-уведомлений, которые часто теряются;
- Автоматизировать работу с админом и службой поддержки;
- Обеспечить удобство и мобильность благодаря приложению Telegram.
Вместо установки плагинов, которые могут замедлять сайт и создавать уязвимости, мы создадим простой и надежный код для отправки сообщений напрямую через Telegram Bot API.
Создаем Telegram бота и получаем chat_id
Для работы с Telegram API необходимо создать бота и получить уникальный токен.
- Откройте Telegram и найдите бота
@BotFather. - Введите команду
/newbotи следуйте инструкциям для создания нового бота. - Получите токен доступа (токен будет выглядеть примерно так:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ). - Добавьте бота в нужный чат (группу или личный чат) и отправьте любое сообщение.
- Чтобы узнать chat_id, можно использовать запрос к API или воспользоваться сторонними ботами, например,
@userinfobot.
После получения токена и chat_id мы можем перейти к написанию кода для отправки сообщений.
Как отправлять сообщения в Telegram из WordPress с помощью PHP
В WordPress создадим функцию, которая будет использовать wp_remote_post для отправки POST-запроса к Telegram API.
function wpkit_send_telegram_message($chat_id, $message, $token) {
$url = "https://api.telegram.org/bot" . $token . "/sendMessage";
$args = array(
'body' => array(
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'HTML'
)
);
$response = wp_remote_post($url, $args);
if (is_wp_error($response)) {
return false;
}
$code = wp_remote_retrieve_response_code($response);
return $code == 200;
}
Эта функция принимает ID чата, текст сообщения и токен бота. В параметре parse_mode можно использовать HTML или Markdown для форматирования.
Пример использования: уведомление о новом комментарии
Добавим отправку уведомления в Telegram при публикации нового комментария.
add_action('wp_insert_comment', 'wpkit_notify_telegram_new_comment', 10, 2);
function wpkit_notify_telegram_new_comment($comment_id, $comment_object) {
if ($comment_object->comment_approved != 1) return; // только одобренные
$chat_id = 'ВАШ_CHAT_ID';
$token = 'ВАШ_ТОКЕН_БОТА';
$author = sanitize_text_field($comment_object->comment_author);
$content = sanitize_text_field($comment_object->comment_content);
$post_id = $comment_object->comment_post_ID;
$post_title = get_the_title($post_id);
$url = get_permalink($post_id) . '#comment-' . $comment_id;
$message = "<b>Новый комментарий на сайте:</b>\n" .
"Автор: " . $author . "\n" .
"Пост: <a href='" . $url . "'>" . $post_title . "</a>\n" .
"Комментарий: " . $content;
wpkit_send_telegram_message($chat_id, $message, $token);
}
Подставьте в код ваши значения chat_id и token. Теперь при появлении нового одобренного комментария в Telegram будет приходить уведомление с ссылкой и текстом.
Как улучшить и расширить функционал Telegram уведомлений
1. Отправка уведомлений о новых заказах WooCommerce
Если у вас интернет-магазин на WooCommerce, можно отправлять уведомления в Telegram о новых заказах.
add_action('woocommerce_thankyou', 'wpkit_notify_telegram_new_order');
function wpkit_notify_telegram_new_order($order_id) {
if (!$order_id) return;
$order = wc_get_order($order_id);
$chat_id = 'ВАШ_CHAT_ID';
$token = 'ВАШ_ТОКЕН_БОТА';
$message = "<b>Новый заказ #" . $order_id . "</b>\n";
$message .= "Сумма: " . $order->get_formatted_order_total() . "\n";
$message .= "Покупатель: " . $order->get_billing_first_name() . " " . $order->get_billing_last_name() . "\n";
$message .= "Статус: " . $order->get_status() . "\n";
wpkit_send_telegram_message($chat_id, $message, $token);
}
2. Форматирование сообщений и кнопки
Telegram API поддерживает кнопки и форматирование. Для кнопок добавьте параметр reply_markup:
$keyboard = json_encode([
'inline_keyboard' => [
[
['text' => 'Посмотреть заказ', 'url' => $order_url]
]
]
]);
$args = [
'body' => [
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'HTML',
'reply_markup' => $keyboard
]
];
<Это позволит добавить интерактивные элементы в уведомления.
3. Защита и оптимизация кода
Для безопасности токен и chat_id лучше хранить в настройках темы или файла wp-config.php. Также стоит ограничить частоту уведомлений, чтобы избежать спама.
Альтернативы и плагины для Telegram уведомлений
Хотя мы рассмотрели вариант без плагинов, если вы предпочитаете готовые решения, рассмотрите плагины:
- WPCommunity — поддерживает уведомления и интеграцию с Telegram;
- Clearfy Pro — оптимизация и расширенные возможности безопасности, в том числе уведомления;
Однако собственный код более гибкий и не нагружает сайт.
Выводы
Отправка Telegram уведомлений из WordPress без плагинов — эффективный способ получать важные сообщения быстро и без лишних зависимостей. Правильно настроенный бот и простой PHP-код помогут легко интегрировать уведомления в ваш проект. При необходимости функционал можно расширить под любые задачи.