Диагностика задачи: зачем отправлять отзывы WooCommerce в Telegram
Если вы ведёте интернет-магазин на WooCommerce, быстрое получение и модерация отзывов клиентов — важный аспект управления репутацией и улучшения продаж. Автоматическая отправка новых отзывов в Telegram упрощает контроль качества и позволяет оперативно отвечать клиентам.
Подготовка: что нужно для интеграции WooCommerce с Telegram
Для реализации задачи понадобится:
- Создать Telegram-бота через BotFather и получить API токен;
- Определить ID чата (группы или личного), куда будут отправляться уведомления;
- Иметь доступ к файлам темы или возможность добавить сниппет в functions.php или через плагин для пользовательских функций.
Пошаговое решение: добавляем автоматическую отправку отзывов в Telegram
1. Получение ID чата Telegram
Чтобы узнать ID чата, можно использовать бота @userinfobot или отправить сообщение в группу и запросить ID через API. Обычно ID чата для групп начинается с минуса.
2. Добавление PHP-кода для отправки сообщения
Вставьте следующий код в functions.php вашей дочерней темы или через плагин Code Snippets:
function send_telegram_review_notification( $comment_ID, $comment_approved ) {
if ( 1 === $comment_approved ) { // Отзыв одобрен
$comment = get_comment( $comment_ID );
if ( 'review' !== $comment->comment_type ) {
return; // Обрабатываем только отзывы
}
$bot_token = 'ВАШ_TELEGRAM_BOT_TOKEN';
$chat_id = 'ВАШ_CHAT_ID';
$product_title = get_the_title( $comment->comment_post_ID );
$author = $comment->comment_author;
$rating = intval( get_comment_meta( $comment_ID, 'rating', true ) );
$message = "Новый отзыв на товар: *" . $product_title . "*\n" .
"Автор: " . $author . "\n" .
"Рейтинг: " . $rating . "/5\n" .
"Отзыв: " . $comment->comment_content;
$url = "https://api.telegram.org/bot" . $bot_token . "/sendMessage";
$data = [
'chat_id' => $chat_id,
'text' => $message,
'parse_mode' => 'Markdown'
];
$args = [
'body' => $data,
'timeout' => 10,
];
wp_remote_post( $url, $args );
}
}
add_action( 'comment_post', 'send_telegram_review_notification', 10, 2 );3. Проверка работы кода
Оставьте новый отзыв на товар и убедитесь, что в указанный Telegram-чат приходит сообщение с данными отзыва. Если сообщение не приходит, проверьте:
- Правильность токена и ID чата;
- Активность бота и наличие у него прав на отправку сообщений в чат;
- Ошибки PHP в журнале серверных ошибок.
Проверка результата после внедрения
Чтобы проверить, что отправка работает корректно:
- Создайте тестовый заказ и оставьте отзыв с рейтингом и текстом.
- Подтвердите отзыв в админке WooCommerce, если включена модерация.
- Проверьте Telegram-чат: должно прийти уведомление с названием товара, автором, рейтингом и текстом отзыва.
- Убедитесь, что в случае отзывов, не являющихся «review» (например, комментарии к блогу), уведомления не отправляются.
Частые ошибки и их исправление
- Неправильный токен или chat_id: бот не отправляет сообщения. Проверьте их по BotFather и с помощью @userinfobot.
- Бот не добавлен в группу или не имеет права писать сообщения: добавьте бота в группу и назначьте администратором с правом отправки сообщений.
- Отзывы не имеют мета поля rating: убедитесь, что рейтинг сохраняется в комментариях (обычно WooCommerce добавляет поле rating автоматически).
- Код добавлен в неподходящий файл или тема обновилась: используйте дочернюю тему или плагин для пользовательских функций, чтобы избежать потери изменений.
Практические советы по безопасности и производительности
- Используйте HTTPS для сайта, чтобы wp_remote_post работал корректно и безопасно.
- Для больших магазинов с большим количеством отзывов подумайте о добавлении очереди отправки сообщений, чтобы не блокировать выполнение запроса.
- Не храните токен и chat_id в открытом коде, если возможно — используйте define-константы в wp-config.php или переменные окружения.
- Ограничьте отправку сообщений только для одобренных отзывов, чтобы избежать спама в Telegram.
Таблица сравнения вариантов отправки отзывов в Telegram
| Метод | Преимущества | Недостатки |
|---|---|---|
| Код в functions.php | Полный контроль, бесплатный, легко кастомизируется | Требует навыков PHP, при смене темы может потеряться |
| Плагин Telegram для WooCommerce | Простота настройки, поддержка, UI | Может быть платным, лишние функции, нагрузка |
| Внешний вебхук через сервисы (IFTTT, Zapier) | Не требует кода, интеграция с другими сервисами | Зависимость от третьих сервисов, возможны задержки |