About this plugin
Makarski Bot Connector for Telegram provides a clean foundation for building Telegram bots powered by WordPress. It handles all the low-level communication with the Telegram Bot API so you can focus on your bot’s logic.
What it does
- Registers a Telegram bot webhook or runs in polling mode (via WP-Cron)
- Automatically creates WordPress users for incoming chat IDs
- Dispatches incoming messages and commands through WordPress action hooks
- Provides a full-featured BotApi class with 30+ methods
- Ships a tabbed Analytics page, mass Broadcast, and in-admin Documentation
Key features
- Webhook & Polling — works on any hosting; polling mode requires no public HTTPS URL
- Command routing — register bot commands with register_bot_command()
- Normalized message hook — tgbot_message fires for all message types (text, photo, voice, video, document, callback_query) with a consistent object structure
- Broadcast — send mass messages to all bot users from the WP admin (Telegram Bot → Broadcast); filter by language, compose per-locale messages, cron-batched delivery with real-time progress and history
- Analytics — a tabbed page (Telegram Bot → Analytics): overview counters, command usage, blocked chats and failed sends, first-touch acquisition sources from?start= deep links, arrival languages, referrals; consumer plugins can add their own tabs via the tgbot_analytics_tabs filter
- Auto-split long messages — text over Telegram’s 4096-character limit is split at paragraph/line/word boundaries with HTML tags kept valid per chunk
- Privacy by default — auto-created bot users are hidden from author archives, the users sitemap, and the public REST users collection (opt out with the tgbot_protect_bot_users filter)
- Send gating — the Enable-bot toggle silences outgoing traffic too; check tgbot_can_send() in your own sending paths
- Referral links — built-in?start=ref_<code> tracking with a reward hook for your plugin
- Stars payments — built-in support for Telegram Stars invoices, pre-checkout, and refunds
- Multipart uploads — send photos, audio, voice messages, videos, and documents
- Documentation in wp-admin — the full developer manual on its own admin page
- Internationalization — translatable, ships with a.pot file
Available BotApi methods
send_message, `send_plain_message`, `send_markdown_message`, `send_photo`, `send_document`, `send_audio`, `send_voice`, `send_video`, `send_animation`, `send_chat_action`, `send_location`, `send_stars_invoice`, `forward_message`, `copy_message`, `delete_message`, `delete_messages`, `edit_message`, `edit_message_markup`, `answer_callback_query`, `answer_pre_checkout_query`, `set_my_commands`, `set_webhook`, `delete_webhook`, `get_webhook_info`, `get_updates`, `get_document_url`, `get_photo_url`, `refund_star_payment`
Available action hooks
tgbot_message (primary hook)
Fires for every non-command incoming message (text, media, callback_query).
' ); } }, 10, 3 );
tgbot_handle_custom_bot_commands
Fires when a slash command is received, before the built-in dispatcher.
g. '/mycommand' }, 10, 3 );
tgbot_bot_call
Fires for every incoming update, including commands. Useful for cross-cutting concerns.
tgbot_pre_checkout_query
Fires when a Telegram Stars pre-checkout query arrives.
add_action( 'tgbot_pre_checkout_query', function( $bot, $query, $user_id ) { $bot->answer_pre_checkout_query( $query->id, true ); }, 10, 3 );
tgbot_successful_payment
Fires after a successful Telegram Stars payment.
add_action( 'tgbot_successful_payment', function( $bot, $payment, $user_id ) { // $payment->telegram_payment_charge_id — use for refunds // $payment->total_amount — amount in Stars }, 10, 3 );
tgbot_raw_message
Fires with the raw Telegram update object for advanced use cases.
tgbot_my_chat_member
Fires when the bot is added to or removed from a group.
tgbot_user_registered
Fires when a WordPress user is created for a new Telegram chat.
add_action( 'tgbot_user_registered', function( $wp_user_id, $chat_id, $from ) { // $from — Telegram 'from' object (may be null) }, 10, 3 );
tgbot_referral_completed
start=ref_<code> referral link — grant your reward here.
Registering bot commands
Use TGBot\register_bot_command() inside an init hook:
add_action( 'init', function() { TGBot\register_bot_command( 'hello', function( $bot ) { $bot->send_message( 'Hello, '. $bot->chat_id. ' ); } );
TGBot\register_bot_command( 'ping', function( $bot ) { $bot->send_message( 'Pong 🏓' ); } ); } );
Minimal plugin example
' ); } ); } );
add_action( 'tgbot_message', function( $bot, $user_id, $msg ) { if ( $msg->type === 'text' ) { $bot->send_message( 'You said: '. esc_html( $msg->text ) ); } }, 10, 3 );
External Services
org) to operate a Telegram bot connected to your WordPress site.
What the service is: Telegram Bot API is a third-party service by Telegram FZ-LLC that allows applications to send and receive messages through Telegram bots.
What data is sent and when:
* Bot token — sent with every API request to authenticate the bot.
* Chat ID — sent when delivering messages to a specific user.
* Message text and media files — sent when the bot responds to users.
* Incoming updates (messages, commands, files) — received from Telegram via webhook (HTTP POST from Telegram to your site) or polling (your site requests updates from Telegram periodically via WP-Cron).
No data is sent to Telegram unless the bot is enabled and a valid token is configured.
org/privacy
org/tos