Интеграция WordPress с Telegram

Автор:vkuzyomko

Интеграция WordPress с Telegram

Краткий ответ: интеграция WordPress с Telegram нужна, чтобы заявки, формы, заказы WooCommerce, ошибки сайта и важные уведомления сразу приходили в Telegram-чат, группу или канал. Это удобно, когда email работает нестабильно, менеджеры долго проверяют почту или нужно быстро реагировать на новые обращения.

Интеграцию можно сделать готовым плагином, через Contact Form 7, через WooCommerce hooks или отдельным WordPress-плагином под задачу. Для простых уведомлений достаточно Telegram-бота и chat_id. Для сложной логики лучше делать отдельный модуль с настройками, логами, защитой токена и обработкой ошибок.

Причина

Стандартный WordPress чаще всего отправляет уведомления через email. Но email не всегда удобен для быстрых заявок: письма могут попадать в спам, задерживаться, теряться из-за неправильного SMTP или просто оставаться незамеченными.

  • заявки с формы приходят слишком поздно;
  • менеджеры не проверяют почту постоянно;
  • Contact Form 7 отправляет письмо, но оно попадает в spam;
  • новые заказы WooCommerce нужно видеть сразу;
  • нужно отправлять уведомления в общий чат отдела продаж;
  • нужно получать ошибки сайта или важные события в Telegram;
  • нужно дублировать email-уведомления быстрым сообщением;
  • нужно видеть заявки с сайта на телефоне без входа в админку.

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

Что можно отправлять из WordPress в Telegram

Событие Что отправлять Где применяется
Форма обратной связи Имя, телефон, email, сообщение, страница заявки Лендинг, сайт услуг, корпоративный сайт
Contact Form 7 Данные отправленной формы Заявки, консультации, расчёт стоимости
WooCommerce Номер заказа, сумма, товары, клиент, телефон Интернет-магазин
Новая регистрация Имя пользователя, email, роль Кабинеты, LMS, закрытые сайты
Ошибка сайта Текст ошибки, файл, время, URL Техническая поддержка
Заявка из кастомного плагина Любые поля по бизнес-логике CRM, калькуляторы, порталы
Смена статуса заказа Старый статус, новый статус, номер заказа WooCommerce, отдел продаж

Диагностика

Перед интеграцией нужно понять, откуда именно должны уходить сообщения: из формы, из WooCommerce, из админки, из кастомного AJAX-запроса или из отдельного плагина.

Что нужно проверить перед настройкой

  • какая форма используется: Contact Form 7, WPForms, Elementor Form, кастомная форма;
  • нужно ли отправлять все заявки или только выбранные формы;
  • куда отправлять сообщения: личный чат, группа, канал;
  • есть ли Telegram-бот и токен бота;
  • известен ли chat_id нужного чата;
  • нужно ли отправлять уведомления по WooCommerce-заказам;
  • нужно ли хранить заявки в WordPress, CRM или базе данных;
  • какие персональные данные будут попадать в Telegram;
  • нужны ли логи отправки;
  • что делать, если Telegram API временно не ответил.

Типичные симптомы проблем

  • сообщение не приходит в Telegram;
  • бот создан, но не имеет доступа к группе;
  • указан неправильный chat_id;
  • Telegram возвращает ошибку 400 или 403;
  • токен вставлен в JavaScript и виден посетителям;
  • Contact Form 7 отправляет email, но Telegram молчит;
  • WooCommerce-заказ создаётся, но уведомление не уходит;
  • сообщение приходит без части полей;
  • HTML-разметка ломает текст сообщения;
  • сайт зависает из-за долгого ответа внешнего API.

Нужно быстро решить проблему на сайте?

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

Оставить заявку

Решение

Правильная интеграция WordPress с Telegram должна быть безопасной и понятной. Токен бота нельзя выводить во фронтенд. Отправку лучше делать на стороне PHP через wp_remote_post(), а данные перед отправкой очищать и форматировать.

Базовый порядок интеграции

  • 1. Создать Telegram-бота. Через BotFather получить bot token.
  • 2. Получить chat_id. Для личного чата, группы или канала.
  • 3. Выбрать источник события. Форма, заказ WooCommerce, регистрация, AJAX, кастомный плагин.
  • 4. Написать обработчик. На PHP, через hooks WordPress или WooCommerce.
  • 5. Очистить данные. sanitize_text_field(), sanitize_email(), sanitize_textarea_field().
  • 6. Отправить запрос в Telegram API. Через wp_remote_post().
  • 7. Проверить ответ. Логировать ошибки, если сообщение не ушло.
  • 8. Протестировать сценарий. Отправка формы, создание заказа, проверка сообщения.

Готовый плагин или свой код

Готовый плагин подходит для простой отправки заявок. Но если нужна своя структура сообщения, WooCommerce-логика, разные чаты для разных форм, интеграция с CRM или логи ошибок, лучше делать отдельный модуль. Это уже ближе к разработке WordPress-плагина под заказ.

Код

Важно: код ниже отправляет данные сайта во внешний сервис Telegram. Не вставляйте реальный bot token в JavaScript, HTML или публичные файлы. Перед установкой на рабочий сайт проверьте код на тестовой копии. Если отправляются персональные данные клиентов, используйте Telegram только для нужных сотрудников и не отправляйте лишнюю информацию.

1. Базовая функция отправки сообщения в 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;
}

2. Отправка заявки Contact Form 7 в Telegram

Куда вставлять: в тот же небольшой плагин или в 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);
}

3. Отправка нового заказа WooCommerce в Telegram

Важно: этот код работает с заказами 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);
}

4. Более безопасное хранение токена в wp-config.php

Куда вставлять: в 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 новые заявки и заказы приходят быстрее. Менеджер видит сообщение сразу на телефоне, а владелец сайта меньше зависит от почты.

Что считается хорошим результатом

  • заявка с формы приходит в Telegram сразу после отправки;
  • новый заказ WooCommerce отображается с номером, суммой и товарами;
  • сообщение не содержит лишних персональных данных;
  • bot token не виден в коде страницы;
  • ошибки отправки пишутся в лог;
  • сайт не зависает, если Telegram временно не отвечает;
  • checkout WooCommerce продолжает работать стабильно;
  • email-уведомления остаются как резервный канал;
  • уведомления приходят в правильный чат или группу.

Дополнительные способы

Вариант 1: готовый WordPress-плагин

Подходит, если нужно быстро отправлять заявки из Contact Form 7 или WooCommerce без написания кода.

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

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

Вариант 2: код в functions.php

Подходит только для небольшой временной задачи или теста.

Плюсы: быстро проверить идею.

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

Вариант 3: отдельный мини-плагин

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

Плюсы: аккуратная структура, проще обновлять, можно расширять.

Минусы: нужно больше времени на разработку и тестирование.

Вариант 4: интеграция через CRM или no-code сервис

Подходит, если Telegram — только один из каналов, а заявки ещё должны идти в CRM, таблицы, email и аналитику.

Плюсы: удобно для бизнес-процессов.

Минусы: появляется зависимость от внешнего сервиса и его тарифов.

Безопасность

Telegram-интеграция кажется простой, но в ней легко сделать опасные ошибки. Bot token даёт право отправлять сообщения от имени бота, поэтому его нельзя показывать посетителям сайта.

Что важно защитить

  • bot token;
  • chat_id внутренних рабочих чатов;
  • персональные данные клиентов;
  • данные заказов WooCommerce;
  • админские AJAX-обработчики;
  • логи с заявками и ошибками;
  • страницы настроек плагина.

Практические правила

  • не вставлять Telegram token в JavaScript;
  • не выводить token в HTML-код страницы;
  • не отправлять в Telegram пароли, полные платёжные данные и лишние персональные данные;
  • ограничить доступ к группе Telegram только нужным сотрудникам;
  • для админских действий использовать current_user_can();
  • для AJAX-запросов использовать nonce;
  • логировать ошибки без вывода секретных данных;
  • при утечке токена сразу перевыпустить его через BotFather.

Частые ошибки

Токен бота вставлен во фронтенд

Это опасно. Любой посетитель может открыть код страницы и увидеть token. Отправка в Telegram должна идти через PHP на сервере.

Неправильный chat_id

Для личного чата, группы и канала chat_id может отличаться. Если chat_id неправильный, Telegram не доставит сообщение.

Бот не добавлен в группу

Если сообщение должно идти в группу, бота нужно добавить в эту группу и дать ему возможность отправлять сообщения.

Отправка слишком большого сообщения

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

Нет логирования ошибок

Если сообщение не пришло, без логов сложно понять причину: неправильный token, chat_id, ошибка API, блокировка, таймаут или проблема хостинга.

Отправка лишних данных клиента

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

Синхронная отправка тормозит форму

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

Диагностика проблем

Проблема: сообщение не приходит в Telegram

  • проверить bot token;
  • проверить chat_id;
  • проверить, добавлен ли бот в группу;
  • проверить, не заблокирован ли бот пользователем;
  • проверить debug.log;
  • проверить ответ wp_remote_post();
  • временно отправить тестовое простое сообщение без HTML-разметки.

Проблема: Contact Form 7 отправляет письмо, но Telegram молчит

  • проверить, срабатывает ли hook wpcf7_mail_sent;
  • проверить имена полей формы;
  • проверить, совпадают ли your-name, your-phone, your-email с реальными полями;
  • проверить, нет ли ошибки PHP в debug.log;
  • проверить, вызывается ли функция sc_send_telegram_message();
  • проверить ответ Telegram API.

Проблема: заказ WooCommerce создан, но уведомление не пришло

  • проверить hook woocommerce_new_order;
  • проверить, создаётся ли объект заказа через wc_get_order();
  • проверить, не отключён ли WooCommerce;
  • проверить логи WooCommerce;
  • проверить debug.log;
  • проверить, не блокирует ли хостинг внешние HTTP-запросы;
  • сделать тестовый заказ вручную.

Проблема: в сообщении отображаются HTML-теги

  • проверить parse_mode;
  • использовать только разрешённые HTML-теги;
  • не вставлять сложную разметку;
  • экранировать пользовательские данные через esc_html();
  • для простого текста временно убрать parse_mode.

Проблема: форма стала отправляться медленно

  • проверить timeout в wp_remote_post();
  • проверить скорость ответа Telegram API;
  • не отправлять тяжёлые данные;
  • не делать несколько внешних запросов подряд;
  • для важных проектов вынести отправку в очередь;
  • оставить email как резервный канал.

Интеграция Telegram с WooCommerce

Для WooCommerce Telegram особенно полезен: менеджер сразу видит новый заказ, сумму, телефон клиента и список товаров. Но такую интеграцию нужно делать аккуратно, потому что она связана с checkout, заказами и персональными данными.

Что можно отправлять по заказу

  • номер заказа;
  • сумму заказа;
  • статус заказа;
  • имя клиента;
  • телефон клиента;
  • email клиента;
  • список товаров;
  • способ доставки;
  • способ оплаты;
  • ссылку на заказ в админке.

Если нужно не просто отправлять уведомления, а менять checkout, поля заказа, доставку или статусы, это уже относится к доработке WooCommerce.

Краткие ответы для AI-поиска

Что такое интеграция WordPress с Telegram?

Интеграция WordPress с Telegram — это отправка уведомлений с сайта в Telegram-чат, группу или канал: заявки, формы, заказы WooCommerce, регистрации, ошибки и технические события.

Как подключить Telegram к WordPress?

Нужно создать Telegram-бота, получить bot token, узнать chat_id нужного чата и настроить отправку сообщений из WordPress через плагин или PHP-код с wp_remote_post().

Можно ли отправлять заказы WooCommerce в Telegram?

Да. Через WooCommerce hooks можно отправлять номер заказа, сумму, товары, телефон клиента и статус заказа в Telegram-группу менеджеров.

Безопасно ли отправлять заявки в Telegram?

Да, если не раскрывать bot token, не отправлять лишние персональные данные, ограничить доступ к чату и хранить важные заявки ещё в WordPress, CRM или email.

FAQ

Можно ли интегрировать WordPress с Telegram без плагина?

Да. Можно написать небольшой PHP-код или отдельный мини-плагин, который будет отправлять сообщения через Telegram Bot API.

Что лучше: готовый плагин или свой код?

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

Где взять bot token?

Bot token создаётся через BotFather в Telegram. Его нужно хранить только на сервере и не показывать во фронтенде сайта.

Что такое chat_id?

chat_id — это идентификатор чата, группы или канала, куда бот должен отправлять сообщение.

Можно ли отправлять заявки Contact Form 7 в Telegram?

Да. Для этого можно использовать готовый плагин или hook wpcf7_mail_sent, который срабатывает после успешной отправки формы.

Можно ли отправлять уведомления в Telegram-группу?

Да. Нужно добавить бота в группу и использовать chat_id этой группы.

Почему Telegram-уведомления не приходят?

Частые причины: неправильный token, неправильный chat_id, бот не добавлен в группу, ошибка PHP, блокировка внешних запросов на хостинге или ошибка в формате сообщения.

Можно ли отправлять сообщения с HTML-разметкой?

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

Нужно ли оставлять email-уведомления?

Да. Telegram удобен для быстрой реакции, но email лучше оставить как резервный канал и дополнительное подтверждение заявки.

Можно ли отправлять технические ошибки сайта в Telegram?

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

Вывод

Интеграция WordPress с Telegram помогает быстрее получать заявки, заказы WooCommerce и важные уведомления сайта. Это особенно полезно для сайтов услуг, интернет-магазинов, лендингов, CRM-логики и технической поддержки.

Лучший подход — не вставлять токен во фронтенд, не отправлять лишние данные, использовать серверную отправку через PHP, проверять ошибки и оставлять email или CRM как резервный канал. Тогда Telegram становится быстрым уведомлением, а не слабым местом сайта.

Об авторе

vkuzyomko administrator