В этой статье рассмотрим, как настроить отправку данных из формы на сайте WordPress напрямую в Telegram-чат без использования плагинов. Это полезно, если вы хотите минимизировать количество плагинов и максимально контролировать процесс передачи данных.
Почему стоит отправлять форму в Telegram напрямую
Отправка формы напрямую в Telegram позволяет быстро получать заявки, обращения или уведомления в удобном мессенджере, не заходя в админку WordPress или почту. Это актуально для небольших сайтов и лендингов, где важна скорость реакции на обращения.
Преимущества такого подхода:
- Минимум зависимостей — не нужно устанавливать плагины.
- Простота настройки и высокая скорость доставки сообщений.
- Контроль над форматированием и отправляемыми данными.
- Экономия ресурсов сайта и уменьшение риска конфликтов.
Как подготовить Telegram для приема сообщений
Создание бота Telegram и получение токена
Для начала необходимо создать Telegram-бота и получить токен для доступа к API:
- Откройте Telegram и найдите бота
@BotFather. - Отправьте команду
/newbotи следуйте инструкциям: укажите имя и уникальное имя пользователя бота. - Получите токен доступа, который будет выглядеть примерно так:
123456789:ABCDEFghIJKlmNoPQRsTUVwxyZ.
Получение chat_id для отправки сообщений
Чтобы отправлять сообщения, нужно знать chat_id — идентификатор чата или пользователя, куда бот будет писать.
Самый простой способ получить chat_id — написать боту и запросить обновления через API:
- Откройте браузер и вставьте URL с вашим токеном:
https://api.telegram.org/bot{TOKEN}/getUpdates, заменив{TOKEN}на ваш токен. - Найдите в ответе поле
chatи скопируйтеid.
Написание функции отправки сообщения в Telegram в WordPress
Добавим в файл functions.php вашей темы функцию wptest_send_telegram_message для отправки сообщений:
function wptest_send_telegram_message($chat_id, $message, $token) {
$url = 'https://api.telegram.org/bot' . $token . '/sendMessage';
$args = [
'body' => [
'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;
}
Эта функция использует стандартную функцию WordPress wp_remote_post для отправки POST-запроса к API Telegram.
Создание простой формы и обработчика с отправкой в Telegram
HTML форма с полями
Добавьте в нужное место сайта следующий код формы (например, в шаблон страницы):
<form method="post" action="">
<label>Имя:<br>
<input type="text" name="wptest_name" required>
</label><br>
<label>Email:<br>
<input type="email" name="wptest_email" required>
</label><br>
<label>Сообщение:<br>
<textarea name="wptest_message" required></textarea>
</label><br>
<input type="submit" name="wptest_submit" value="Отправить">
</form>
Обработка данных формы и отправка в Telegram
В functions.php добавьте код для обработки отправки:
add_action('init', function() {
if (isset($_POST['wptest_submit'])) {
$name = sanitize_text_field($_POST['wptest_name']);
$email = sanitize_email($_POST['wptest_email']);
$message = sanitize_textarea_field($_POST['wptest_message']);
$token = 'ВАШ_ТОКЕН_БОТА'; // Замените на ваш токен
$chat_id = 'ВАШ_CHAT_ID'; // Замените на ваш chat_id
$text = "<b>Новая заявка с сайта</b>%0A" .
"Имя: " . $name . "%0A" .
"Email: " . $email . "%0A" .
"Сообщение: " . $message;
$sent = wptest_send_telegram_message($chat_id, $text, $token);
if ($sent) {
// Можно добавить редирект или сообщение об успехе
wp_safe_redirect(add_query_arg('sent', '1', wp_get_referer()));
exit;
} else {
// Обработка ошибки
wp_die('Ошибка отправки сообщения в Telegram.');
}
}
});
Безопасность и рекомендации по использованию
При работе с формами и внешними API важно соблюдать несколько правил:
- Используйте функции санитизации WordPress для очистки данных (
sanitize_text_field,sanitize_email,sanitize_textarea_field). - Добавьте nonce-поля и проверки, чтобы избежать CSRF-атак (в примере можно расширить).
- Храните токен бота в безопасном месте, например, в
wp-config.phpили в настройках темы, а не в открытом коде. - Для больших объемов данных или сложных форм рассматривайте использование плагинов с поддержкой Telegram, например WPGPT, которые расширяют функциональность и удобство.
Альтернативные плагины для интеграции с Telegram
Если вы предпочитаете использовать готовые решения, обратите внимание на следующие плагины:
- WP Telegram — позволяет интегрировать сайт с Telegram для отправки уведомлений, сообщений и создания подписок.
- Contact Form 7 Telegram — расширение для популярной формы Contact Form 7, добавляющее отправку сообщений в Telegram.
- WPGPT от WPShop — современный плагин с поддержкой отправки уведомлений и интеграций в Telegram, рекомендован для автоматизации и расширенных сценариев.
Каждый из этих плагинов имеет свои особенности и удобные настройки, но если нужна максимальная легкость и кастомизация — лучше написать собственный код, как показано выше.