WooCommerce: как настроить отправку уведомлений в Telegram о новых заказах

Проблема: отсутствие мгновенных уведомлений о заказах в Telegram

Многие владельцы WooCommerce-магазинов хотят получать уведомления о новых заказах напрямую в Telegram, чтобы быстро реагировать на поступающие заявки. В стандартном WooCommerce такой функционал отсутствует. Можно использовать сторонние плагины, но они часто оказываются громоздкими или платными. Лучший способ — настроить отправку уведомлений через Telegram Bot API с помощью кастомного кода.

Диагностика задачи: что нужно и как проверить

Перед настройкой убедитесь, что:

  • Вы создали Telegram-бота через @BotFather и получили Токен бота.
  • Знаете свой chat_id — идентификатор чата или группы, куда хотите получать уведомления.
  • В WooCommerce настроены базовые уведомления о заказах (статусы заказов).

Проверить chat_id можно, отправив запрос к API или используя бота @userinfobot в Telegram.

Пошаговое решение: добавляем отправку уведомлений в Telegram

1. Создаем Telegram-бота и получаем токен

В Telegram найдите пользователя @BotFather, отправьте команду /newbot и следуйте инструкциям. В итоге получите токен вида 123456789:ABCdefGhIjKLmnoPQRsTUVwxyZ.

2. Узнаем chat_id

Чтобы узнать chat_id, отправьте в Telegram боту @userinfobot команду /start — он вернет ваш идентификатор. Если нужен chat_id группы, добавьте туда бота и выполните специальный скрипт (см. ниже).

3. Добавляем код в functions.php или в плагин

Вставьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function send_telegram_message($message) {
    $token = 'ВАШ_ТОКЕН_БОТА';
    $chat_id = 'ВАШ_CHAT_ID';
    $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);
    return !is_wp_error($response);
}

add_action('woocommerce_thankyou', 'notify_new_order_telegram', 10, 1);
function notify_new_order_telegram($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    if (!$order) return;

    $items = '';
    foreach ($order->get_items() as $item) {
        $product_name = $item->get_name();
        $quantity = $item->get_quantity();
        $items .= "$product_name x $quantity\n";
    }

    $message = "<b>Новый заказ #{$order->get_order_number()}</b>\n" .
               "Сумма: {$order->get_formatted_order_total()}\n" .
               "Клиент: {$order->get_billing_first_name()} {$order->get_billing_last_name()}\n" .
               "Телефон: {$order->get_billing_phone()}\n" .
               "Email: {$order->get_billing_email()}\n" .
               "Товары:\n" . $items .
               "Статус: {$order->get_status()}";

    send_telegram_message($message);
}

4. Как узнать chat_id группы для уведомлений

Добавьте бота в группу и отправьте в группу любое сообщение. Затем используйте следующий скрипт для получения chat_id (например, через WP-CLI или отдельный PHP файл):

<?php
$token = 'ВАШ_ТОКЕН_БОТА';
$response = file_get_contents("https://api.telegram.org/bot$token/getUpdates");
var_dump($response);
?>

В выводе ищите chat с полем id — это и есть chat_id группы.

Проверка результата после внедрения

Чтобы проверить, что уведомления работают:

  • Создайте тестовый заказ в WooCommerce.
  • После оформления заказа проверьте чат/группу Telegram — должно прийти сообщение с деталями.
  • Если сообщение не пришло, проверьте логи сервера, ошибки PHP и доступность Telegram API.

Частые ошибки и как их исправить

  • Неверный токен бота: проверьте правильность токена, нет лишних пробелов.
  • Неправильный chat_id: перепроверьте chat_id, особенно для групп — бот должен быть участником группы.
  • Бот заблокирован или ограничен: убедитесь, что бот не заблокирован в чате и имеет права на отправку сообщений.
  • Ошибка HTTPS или API: проверьте доступность сайта Telegram и наличие SSL у вашего сервера.
  • Функция wp_remote_post отключена: на некоторых хостингах функции HTTP могут быть запрещены — уточните у провайдера.

Практические советы по безопасности и производительности

  • Не храните токен бота в открытом виде в коде, лучше использовать define('TELEGRAM_BOT_TOKEN', 'ваш_токен'); в wp-config.php или через настройки плагина.
  • Ограничьте уведомления только статусом заказа processing или completed, чтобы не получать уведомления от отмененных заказов.
  • Логируйте ошибки отправки сообщений в отдельный файл для быстрого анализа.
  • Для крупных магазинов с интенсивным трафиком реализуйте очередь отправки уведомлений, чтобы не блокировать процесс оформления заказа.

Сравнение вариантов реализации уведомлений о новых заказах

Метод Плюсы Минусы Когда использовать
Плагин Telegram Notification Простая установка, минимальный код Может быть тяжелым, платным, не гибким Для быстрого старта без кастомизации
Кастомный код через functions.php Максимальный контроль, легковесность Требует навыков программирования При необходимости точной настройки и оптимизации
Использование сервисов автоматизации (Zapier, Integromat) Широкие возможности интеграций Дополнительные затраты, задержки в уведомлениях Если нужны мультиканальные оповещения
Как создать настройки плагина в WordPress: пошаговое руководство
26.12.2025
WooCommerce: как разрешить только один тип оплаты для конкретного товара
12.05.2026
Как создать владелческие роли и разрещения в WordPress
10.03.2026
WooCommerce: как исправить ошибку «Невозможно получить данные производителя»
20.04.2026
Как отключить редактор Gutenberg в WordPress без плагинов
23.12.2025