Khi kinh doanh online tại Việt Nam, việc nhận thông báo đơn hàng mới ngay lập tức trên điện thoại (qua Telegram hoặc Zalo) giúp chủ shop phản ứng nhanh, xử lý đơn hàng kịp thời và giảm tỷ lệ hủy đơn. Bài viết này hướng dẫn bạn hai cách tích hợp gửi thông báo đơn hàng WooCommerce về Telegram và Zalo:
- Dùng plugin – nhanh, dễ cấu hình, phù hợp người mới.
- Code tay (không dùng plugin) – linh hoạt, nhẹ máy, phù hợp khi muốn tùy chỉnh sâu hoặc tránh thêm plugin.
Chuẩn bị chung cho cả hai cách
Trước khi bắt đầu, bạn cần chuẩn bị các thông tin sau:
1. Telegram
- Tạo Telegram Bot:
- Tìm @BotFather → /newbot → đặt tên bot → nhận Bot Token (dạng 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
- Lấy Chat ID:
- Cách 1: Gửi tin nhắn bất kỳ cho bot → truy cập https://api.telegram.org/bot<YourBotToken>/getUpdates → tìm “chat”:{“id”:…}
- Cách 2: Thêm bot vào group → dùng @username_to_id_bot để lấy ID group
2. Zalo
- Tạo Zalo Official Account (OA) (nếu chưa có): https://oa.zalo.me
- Lấy Access Token:
- Vào OA → Cài đặt → API → Tạo Access Token (có thể dùng token dài hạn)
- Lấy User ID (nếu gửi cho cá nhân) hoặc Follower ID (nếu gửi cho tất cả follower)
- Hoặc dùng Webhook để nhận tin nhắn từ khách → nhưng ở đây ta tập trung gửi thông báo một chiều từ website về Zalo OA → chủ shop
Cách 1: Dùng Plugin
Plugin phổ biến cho Telegram
- WP Telegram (miễn phí + Pro)
- Telegram for WooCommerce (có bản miễn phí)
- NotificationX (có tích hợp Telegram)
Plugin phổ biến cho Zalo
- Zalo Official Account – WooCommerce (từ các nhà phát triển Việt Nam, thường trả phí)
- WooZalo hoặc Zalo Notification for WooCommerce (các plugin Việt Nam trên CodeCanyon hoặc diễn đàn)
Hướng dẫn chi tiết (ví dụ với WP Telegram – Telegram)
- Vào Plugins → Thêm mới → Tìm “WP Telegram” → Cài đặt & kích hoạt.
- Vào Cài đặt → WP Telegram.
- Nhập Bot Token vừa tạo.
- Thêm Chat ID (cá nhân hoặc group).
- Trong tab WooCommerce, bật các thông báo cần thiết:
- New Order
- Order Status Changed
- Low Stock / Out of Stock
- Tùy chỉnh nội dung thông báo (dùng shortcode như {order_id}, {order_total}, {customer_name}, v.v.)
- Lưu lại → test bằng cách đặt một đơn hàng thử.
Với Zalo (ví dụ plugin WooZalo hoặc tương tự)
- Tìm plugin “Zalo OA WooCommerce” trên Google hoặc diễn đàn WordPress Việt.
- Sau khi cài đặt:
- Nhập OA ID và Access Token.
- Chọn loại thông báo (thường là gửi tin nhắn cho admin hoặc broadcast cho follower).
- Cấu hình template tin nhắn.
Ưu điểm: Cài đặt nhanh, giao diện cấu hình thân thiện, hỗ trợ template sẵn. Nhược điểm: Thêm plugin → có thể xung đột hoặc làm chậm site nếu dùng nhiều plugin.
Cách 2: Code tay (không dùng plugin)
Phương pháp này sử dụng functions.php của child theme và các hook WooCommerce.
2.1. Gửi thông báo về Telegram
Thêm đoạn code sau vào functions.php của child theme:
<span>// Gửi thông báo Telegram khi có đơn hàng mới</span> <span>add_action('woocommerce_new_order', 'send_telegram_new_order', 10, 1);</span> <span>function send_telegram_new_order($order_id) {</span> <span> $order = wc_get_order($order_id);</span> <span> // Thông tin cần gửi</span> <span> $customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();</span> <span> $order_total = $order->get_formatted_order_total();</span> <span> $order_link = $order->get_edit_order_url();</span> <span> $message = "🛒 Đơn hàng mới!\n";</span> <span> $message .= "Mã đơn: #{$order_id}\n";</span> <span> $message .= "Khách hàng: {$customer_name}\n";</span> <span> $message .= "Tổng tiền: {$order_total}\n";</span> <span> $message .= "Xem chi tiết: {$order_link}";</span> <span> // Thay bằng token và chat_id của bạn</span> <span> $bot_token = 'YOUR_BOT_TOKEN_HERE';</span> <span> $chat_id = 'YOUR_CHAT_ID_HERE';</span> <span> $url = "https://api.telegram.org/bot{$bot_token}/sendMessage";</span> <span> $args = [</span> <span> 'chat_id' => $chat_id,</span> <span> 'text' => $message,</span> <span> 'parse_mode' => 'HTML',</span> <span> ];</span> <span> wp_remote_post($url, ['body' => $args]);</span> <span>}</span> 1234567891011121314151617181920212223242526272829 <span>// Gửi thông báo Telegram khi có đơn hàng mới</span><span>add_action('woocommerce_new_order', 'send_telegram_new_order', 10, 1);</span><span>function send_telegram_new_order($order_id) {</span><span> $order = wc_get_order($order_id);</span> <span> // Thông tin cần gửi</span><span> $customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();</span><span> $order_total = $order->get_formatted_order_total();</span><span> $order_link = $order->get_edit_order_url();</span> <span> $message = "🛒 Đơn hàng mới!\n";</span><span> $message .= "Mã đơn: #{$order_id}\n";</span><span> $message .= "Khách hàng: {$customer_name}\n";</span><span> $message .= "Tổng tiền: {$order_total}\n";</span><span> $message .= "Xem chi tiết: {$order_link}";</span> <span> // Thay bằng token và chat_id của bạn</span><span> $bot_token = 'YOUR_BOT_TOKEN_HERE';</span><span> $chat_id = 'YOUR_CHAT_ID_HERE';</span> <span> $url = "https://api.telegram.org/bot{$bot_token}/sendMessage";</span><span> $args = [</span><span> 'chat_id' => $chat_id,</span><span> 'text' => $message,</span><span> 'parse_mode' => 'HTML',</span><span> ];</span> <span> wp_remote_post($url, ['body' => $args]);</span><span>}</span>2.2. Gửi thông báo về Zalo OA (gửi tin nhắn cho admin)
Zalo OA hỗ trợ gửi tin nhắn một chiều đến user đã follow OA hoặc admin. Dưới đây là cách gửi cho admin (dùng API gửi tin nhắn cá nhân).
<span>// Gửi thông báo Zalo khi có đơn hàng mới</span> <span>add_action('woocommerce_new_order', 'send_zalo_new_order', 10, 1);</span> <span>function send_zalo_new_order($order_id) {</span> <span> $order = wc_get_order($order_id);</span> <span> $customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();</span> <span> $order_total = $order->get_formatted_order_total();</span> <span> $message = "Đơn hàng mới #{$order_id}\nKhách: {$customer_name}\nTổng: {$order_total}";</span> <span> // Thay bằng thông tin của bạn</span> <span> $access_token = 'YOUR_ZALO_OA_ACCESS_TOKEN';</span> <span> $user_id = 'USER_ID_CUA_ADMIN_HOAC_FOLLOWER'; // Lấy từ Zalo OA</span> <span> $url = 'https://openapi.zalo.me/v2.0/oa/message';</span> <span> $data = [</span> <span> 'recipient' => ['user_id' => $user_id],</span> <span> 'message' => ['text' => $message],</span> <span> ];</span> <span> $args = [</span> <span> 'headers' => [</span> <span> 'access_token' => $access_token,</span> <span> 'Content-Type' => 'application/json',</span> <span> ],</span> <span> 'body' => wp_json_encode($data),</span> <span> ];</span> <span> wp_remote_post($url, $args);</span> <span>}</span> 12345678910111213141516171819202122232425262728293031 <span>// Gửi thông báo Zalo khi có đơn hàng mới</span><span>add_action('woocommerce_new_order', 'send_zalo_new_order', 10, 1);</span><span>function send_zalo_new_order($order_id) {</span><span> $order = wc_get_order($order_id);</span> <span> $customer_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();</span><span> $order_total = $order->get_formatted_order_total();</span> <span> $message = "Đơn hàng mới #{$order_id}\nKhách: {$customer_name}\nTổng: {$order_total}";</span> <span> // Thay bằng thông tin của bạn</span><span> $access_token = 'YOUR_ZALO_OA_ACCESS_TOKEN';</span><span> $user_id = 'USER_ID_CUA_ADMIN_HOAC_FOLLOWER'; // Lấy từ Zalo OA</span> <span> $url = 'https://openapi.zalo.me/v2.0/oa/message';</span> <span> $data = [</span><span> 'recipient' => ['user_id' => $user_id],</span><span> 'message' => ['text' => $message],</span><span> ];</span> <span> $args = [</span><span> 'headers' => [</span><span> 'access_token' => $access_token,</span><span> 'Content-Type' => 'application/json',</span><span> ],</span><span> 'body' => wp_json_encode($data),</span><span> ];</span> <span> wp_remote_post($url, $args);</span><span>}</span>Lưu ý quan trọng khi dùng code tay:
- Thay YOUR_BOT_TOKEN_HERE, YOUR_CHAT_ID_HERE, YOUR_ZALO_OA_ACCESS_TOKEN, USER_ID_CUA_ADMIN_HOAC_FOLLOWER bằng giá trị thực.
- Để gửi cho nhiều người (group Telegram hoặc broadcast Zalo), cần dùng API tương ứng (sendMessage cho Telegram group, broadcast cho Zalo OA).
- Nếu muốn gửi khi thay đổi trạng thái đơn (ví dụ: hoàn tất, hủy), thay hook woocommerce_new_order bằng woocommerce_order_status_changed.
Ví dụ mở rộng – gửi khi hoàn tất đơn:
<span>add_action('woocommerce_order_status_completed', 'send_telegram_order_completed', 10, 1);</span> <span>function send_telegram_order_completed($order_id) {</span> <span> // Tương tự code trên, chỉ đổi nội dung thông báo</span> <span> // ...</span> <span>}</span> 12345 <span>add_action('woocommerce_order_status_completed', 'send_telegram_order_completed', 10, 1);</span><span>function send_telegram_order_completed($order_id) {</span><span> // Tương tự code trên, chỉ đổi nội dung thông báo</span><span> // ...</span><span>}</span>So sánh hai cách
Tiêu chí Dùng Plugin Code tay Độ khó Dễ – cấu hình qua giao diện Trung bình – cần hiểu code Thời gian setup 5–15 phút 15–60 phút Tùy chỉnh nội dung Tốt (có shortcode) Rất tốt (tự do viết) Hiệu suất website Có thể chậm hơn nếu plugin nặng Nhẹ hơn Bảo trì khi API thay đổi Plugin thường cập nhật nhanh Phải tự sửa code Chi phí Miễn phí hoặc trả phí (Pro) Miễn phíLời khuyên cuối
- Nếu bạn mới bắt đầu hoặc không rành code → dùng plugin (WP Telegram + plugin Zalo Việt Nam).
- Nếu bạn muốn tối ưu tốc độ, tùy chỉnh chi tiết hoặc tránh phụ thuộc plugin → dùng code tay.
- Nên test kỹ trên đơn hàng thử nghiệm trước khi áp dụng thật.
- Đảm bảo không để lộ Token/API Key trong code (có thể lưu vào file wp-config.php hoặc custom fields).
Nếu bạn cần mẫu code mở rộng hơn (gửi cho nhiều chat ID, đính kèm ảnh sản phẩm, thông báo khi stock thấp…), hãy comment bên dưới!
Chúc các bạn thực hiện thành công !