Краткий ответ: интеграция WordPress с Telegram нужна, чтобы заявки, формы, заказы WooCommerce, ошибки сайта и важные уведомления сразу приходили в Telegram-чат, группу или канал. Это удобно, когда email работает нестабильно, менеджеры долго проверяют почту или нужно быстро реагировать на новые обращения.
Интеграцию можно сделать готовым плагином, через Contact Form 7, через WooCommerce hooks или отдельным WordPress-плагином под задачу. Для простых уведомлений достаточно Telegram-бота и chat_id. Для сложной логики лучше делать отдельный модуль с настройками, логами, защитой токена и обработкой ошибок.
Стандартный WordPress чаще всего отправляет уведомления через email. Но email не всегда удобен для быстрых заявок: письма могут попадать в спам, задерживаться, теряться из-за неправильного SMTP или просто оставаться незамеченными.
Если проблема не только в Telegram, а в том, что WordPress вообще не отправляет письма, сначала стоит проверить причины, почему не отправляются письма WordPress. Telegram лучше использовать как быстрый канал уведомлений, а не как единственную систему хранения заявок.
| Событие | Что отправлять | Где применяется |
|---|---|---|
| Форма обратной связи | Имя, телефон, email, сообщение, страница заявки | Лендинг, сайт услуг, корпоративный сайт |
| Contact Form 7 | Данные отправленной формы | Заявки, консультации, расчёт стоимости |
| WooCommerce | Номер заказа, сумма, товары, клиент, телефон | Интернет-магазин |
| Новая регистрация | Имя пользователя, email, роль | Кабинеты, LMS, закрытые сайты |
| Ошибка сайта | Текст ошибки, файл, время, URL | Техническая поддержка |
| Заявка из кастомного плагина | Любые поля по бизнес-логике | CRM, калькуляторы, порталы |
| Смена статуса заказа | Старый статус, новый статус, номер заказа | WooCommerce, отдел продаж |
Перед интеграцией нужно понять, откуда именно должны уходить сообщения: из формы, из WooCommerce, из админки, из кастомного AJAX-запроса или из отдельного плагина.
Если не хотите рисковать сайтом и тратить время на эксперименты, можно оставить заявку. Я посмотрю задачу и предложу аккуратное решение.
Правильная интеграция WordPress с Telegram должна быть безопасной и понятной. Токен бота нельзя выводить во фронтенд. Отправку лучше делать на стороне PHP через wp_remote_post(), а данные перед отправкой очищать и форматировать.
Готовый плагин подходит для простой отправки заявок. Но если нужна своя структура сообщения, WooCommerce-логика, разные чаты для разных форм, интеграция с CRM или логи ошибок, лучше делать отдельный модуль. Это уже ближе к разработке WordPress-плагина под заказ.
Важно: код ниже отправляет данные сайта во внешний сервис Telegram. Не вставляйте реальный bot token в JavaScript, HTML или публичные файлы. Перед установкой на рабочий сайт проверьте код на тестовой копии. Если отправляются персональные данные клиентов, используйте Telegram только для нужных сотрудников и не отправляйте лишнюю информацию.
Куда вставлять: лучше в отдельный небольшой плагин. Для теста можно временно использовать functions.php дочерней темы, но постоянную интеграцию лучше хранить отдельно от темы.
<?php
if (!defined('ABSPATH')) {
exit;
}
function sc_send_telegram_message($message) {
$bot_token = 'PASTE_YOUR_BOT_TOKEN_HERE';
$chat_id = 'PASTE_YOUR_CHAT_ID_HERE';
if (empty($bot_token) || empty($chat_id) || empty($message)) {
return false;
}
$api_url = 'https://api.telegram.org/bot' . $bot_token . '/sendMessage';
$response = wp_remote_post($api_url, array(
'timeout' => 15,
'body' => array(
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'HTML',
'disable_web_page_preview' => true,
),
));
if (is_wp_error($response)) {
error_log('Telegram error: ' . $response->get_error_message());
return false;
}
$response_code = wp_remote_retrieve_response_code($response);
if ($response_code !== 200) {
error_log('Telegram response code: ' . $response_code);
error_log('Telegram response body: ' . wp_remote_retrieve_body($response));
return false;
}
return true;
}
Куда вставлять: в тот же небольшой плагин или в functions.php дочерней темы. Нужен активный Contact Form 7.
<?php
add_action('wpcf7_mail_sent', 'sc_send_cf7_to_telegram');
function sc_send_cf7_to_telegram($contact_form) {
if (!function_exists('WPCF7_Submission')) {
return;
}
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$posted_data = $submission->get_posted_data();
$name = isset($posted_data['your-name']) ? sanitize_text_field($posted_data['your-name']) : '';
$phone = isset($posted_data['your-phone']) ? sanitize_text_field($posted_data['your-phone']) : '';
$email = isset($posted_data['your-email']) ? sanitize_email($posted_data['your-email']) : '';
$text = isset($posted_data['your-message']) ? sanitize_textarea_field($posted_data['your-message']) : '';
$page_url = isset($_SERVER['HTTP_REFERER']) ? esc_url_raw($_SERVER['HTTP_REFERER']) : '';
$message = "<b>Новая заявка с сайта</b>n";
$message .= "Имя: " . esc_html($name) . "n";
$message .= "Телефон: " . esc_html($phone) . "n";
$message .= "Email: " . esc_html($email) . "n";
$message .= "Сообщение: " . esc_html($text) . "n";
$message .= "Страница: " . esc_url($page_url);
sc_send_telegram_message($message);
}
Важно: этот код работает с заказами WooCommerce. Перед установкой проверьте тестовый заказ, оплату, доставку и email-уведомления. Не отправляйте в Telegram лишние персональные данные клиента.
Куда вставлять: лучше в отдельный плагин. Для магазина это безопаснее, чем хранить бизнес-логику в теме.
<?php
add_action('woocommerce_new_order', 'sc_send_woocommerce_order_to_telegram', 20, 1);
function sc_send_woocommerce_order_to_telegram($order_id) {
if (!function_exists('wc_get_order')) {
return;
}
$order = wc_get_order($order_id);
if (!$order) {
return;
}
$items_text = '';
foreach ($order->get_items() as $item) {
$items_text .= '- ' . $item->get_name() . ' x ' . $item->get_quantity() . "n";
}
$billing_name = trim($order->get_billing_first_name() . ' ' . $order->get_billing_last_name());
$billing_phone = $order->get_billing_phone();
$billing_email = $order->get_billing_email();
$message = "<b>Новый заказ WooCommerce</b>n";
$message .= "Заказ: #" . $order->get_order_number() . "n";
$message .= "Сумма: " . $order->get_total() . ' ' . $order->get_currency() . "n";
$message .= "Клиент: " . esc_html($billing_name) . "n";
$message .= "Телефон: " . esc_html($billing_phone) . "n";
$message .= "Email: " . esc_html($billing_email) . "n";
$message .= "Товары:n" . esc_html($items_text);
sc_send_telegram_message($message);
}
Куда вставлять: в wp-config.php перед строкой /* That’s all, stop editing! */.
define('SC_TELEGRAM_BOT_TOKEN', 'PASTE_YOUR_BOT_TOKEN_HERE');
define('SC_TELEGRAM_CHAT_ID', 'PASTE_YOUR_CHAT_ID_HERE');
После этого базовую функцию можно изменить так, чтобы токен не был записан прямо в коде плагина.
<?php
function sc_send_telegram_message($message) {
if (!defined('SC_TELEGRAM_BOT_TOKEN') || !defined('SC_TELEGRAM_CHAT_ID')) {
return false;
}
$bot_token = SC_TELEGRAM_BOT_TOKEN;
$chat_id = SC_TELEGRAM_CHAT_ID;
if (empty($bot_token) || empty($chat_id) || empty($message)) {
return false;
}
$api_url = 'https://api.telegram.org/bot' . $bot_token . '/sendMessage';
$response = wp_remote_post($api_url, array(
'timeout' => 15,
'body' => array(
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'HTML',
'disable_web_page_preview' => true,
),
));
if (is_wp_error($response)) {
error_log('Telegram error: ' . $response->get_error_message());
return false;
}
return wp_remote_retrieve_response_code($response) === 200;
}
После правильной интеграции WordPress с Telegram новые заявки и заказы приходят быстрее. Менеджер видит сообщение сразу на телефоне, а владелец сайта меньше зависит от почты.
Подходит, если нужно быстро отправлять заявки из Contact Form 7 или WooCommerce без написания кода.
Плюсы: быстро, есть настройки в админке, не нужен программист для базового сценария.
Минусы: ограниченная логика, возможные лишние функции, зависимость от обновлений автора, не всегда удобно настроить сложный формат сообщения.
Подходит только для небольшой временной задачи или теста.
Плюсы: быстро проверить идею.
Минусы: бизнес-логика зависит от темы, код легко потерять при смене темы, сложнее поддерживать.
Лучший вариант для постоянной интеграции: можно хранить настройки, логи, разные chat_id, обработчики форм и WooCommerce-заказов.
Плюсы: аккуратная структура, проще обновлять, можно расширять.
Минусы: нужно больше времени на разработку и тестирование.
Подходит, если Telegram — только один из каналов, а заявки ещё должны идти в CRM, таблицы, email и аналитику.
Плюсы: удобно для бизнес-процессов.
Минусы: появляется зависимость от внешнего сервиса и его тарифов.
Telegram-интеграция кажется простой, но в ней легко сделать опасные ошибки. Bot token даёт право отправлять сообщения от имени бота, поэтому его нельзя показывать посетителям сайта.
Это опасно. Любой посетитель может открыть код страницы и увидеть token. Отправка в Telegram должна идти через PHP на сервере.
Для личного чата, группы и канала chat_id может отличаться. Если chat_id неправильный, Telegram не доставит сообщение.
Если сообщение должно идти в группу, бота нужно добавить в эту группу и дать ему возможность отправлять сообщения.
Если в Telegram отправлять слишком длинный список товаров, большой комментарий или технический лог, сообщение может не уйти. Для больших данных лучше отправлять краткое уведомление и ссылку на заказ в админке.
Если сообщение не пришло, без логов сложно понять причину: неправильный token, chat_id, ошибка API, блокировка, таймаут или проблема хостинга.
Telegram — удобный канал уведомлений, но не место для хранения всего заказа. Лучше отправлять только то, что нужно менеджеру для быстрой реакции.
Если внешний API отвечает долго, пользователь может ждать отправку формы. Для сложных проектов лучше использовать очередь, cron или фоновые задачи.
Для WooCommerce Telegram особенно полезен: менеджер сразу видит новый заказ, сумму, телефон клиента и список товаров. Но такую интеграцию нужно делать аккуратно, потому что она связана с checkout, заказами и персональными данными.
Если нужно не просто отправлять уведомления, а менять checkout, поля заказа, доставку или статусы, это уже относится к доработке WooCommerce.
Интеграция WordPress с Telegram — это отправка уведомлений с сайта в Telegram-чат, группу или канал: заявки, формы, заказы WooCommerce, регистрации, ошибки и технические события.
Нужно создать Telegram-бота, получить bot token, узнать chat_id нужного чата и настроить отправку сообщений из WordPress через плагин или PHP-код с wp_remote_post().
Да. Через WooCommerce hooks можно отправлять номер заказа, сумму, товары, телефон клиента и статус заказа в Telegram-группу менеджеров.
Да, если не раскрывать bot token, не отправлять лишние персональные данные, ограничить доступ к чату и хранить важные заявки ещё в WordPress, CRM или email.
Да. Можно написать небольшой PHP-код или отдельный мини-плагин, который будет отправлять сообщения через Telegram Bot API.
Для простой формы подойдёт готовый плагин. Для WooCommerce, разных чатов, кастомного текста, логов и сложной бизнес-логики лучше писать свой модуль.
Bot token создаётся через BotFather в Telegram. Его нужно хранить только на сервере и не показывать во фронтенде сайта.
chat_id — это идентификатор чата, группы или канала, куда бот должен отправлять сообщение.
Да. Для этого можно использовать готовый плагин или hook wpcf7_mail_sent, который срабатывает после успешной отправки формы.
Да. Нужно добавить бота в группу и использовать chat_id этой группы.
Частые причины: неправильный token, неправильный chat_id, бот не добавлен в группу, ошибка PHP, блокировка внешних запросов на хостинге или ошибка в формате сообщения.
Да, но разметка должна быть простой. Лучше использовать короткие сообщения с базовым форматированием: жирный заголовок, строки с данными, ссылка на заказ или страницу.
Да. Telegram удобен для быстрой реакции, но email лучше оставить как резервный канал и дополнительное подтверждение заявки.
Да, но аккуратно. В технических уведомлениях нельзя отправлять секретные ключи, пароли, токены, персональные данные и большие логи.
Интеграция WordPress с Telegram помогает быстрее получать заявки, заказы WooCommerce и важные уведомления сайта. Это особенно полезно для сайтов услуг, интернет-магазинов, лендингов, CRM-логики и технической поддержки.
Лучший подход — не вставлять токен во фронтенд, не отправлять лишние данные, использовать серверную отправку через PHP, проверять ошибки и оставлять email или CRM как резервный канал. Тогда Telegram становится быстрым уведомлением, а не слабым местом сайта.
Об авторе