Trong wordpress nhiều khi chúng ta cần lànm một số việc, tính năng các bài hứng dẫn trên mạng hầu hết khuyên chúng ta dùng plugin này kia để làm tuy nhiên việc lạm dụng các plugin này có một rủi do đó là làm cho web nặng hơn, có nhiều tính năng mà chúng ta không thực sự cần tới, trong loạt bài Code thay cho plugin mình sẽ giới thiệu cho các bạn những đoạn code ngắn nhưng làm được việc mà không cần dùng plugin rờm rà có nguy cơ về bảo mật nữa. Bài đầu tiên này mình sẽ hướng dẫn các bạn gửi tin nhắn noti lên telegram mỗi khi có bài đăng mới, hoặc cập nhập, và khi có khách hàng mua sản phẩm của chúng ta, tất cả điều này sẽ được thực thi qua các hook có sẵn của wordpress. Tất cả những đoạn code trong bài bạn chỉ cần thêm vào file function.php của theme là được
Trước tiên các bạn cần tạo telegram bot bằng các nhắn tin cho BotFather qua link: https://t.me/BotFather
I: Gửi thông báo mỗi khi có bài đăng mới
Để làm được điều này chúng ta sẽ dùng hook publish_post của wordpress để kiểm tra xem bài đăng có phải đã được đăng public hay không và đoạn code chúng ta có sẽ như sau
function send_telegram_notification_post($post_id) {
// Lấy thông tin bài đăng mới
$post = get_post($post_id);
$post_title = $post->post_title;
$post_url = get_permalink($post_id);
// Cấu hình thông tin bot và kênh Telegram
$telegram_bot_token = 'Token_telegram_here';
$telegram_channel_name = 'ID chat';
// Tạo URL cho việc gửi tin nhắn đến kênh Telegram
$telegram_api_url = 'https://api.telegram.org/bot' . $telegram_bot_token . '/sendMessage';
// Tạo nội dung tin nhắn
$telegram_message = '???? Có bài đăng mới trên website: ' . $post_title . PHP_EOL . $post_url;
// Gửi tin nhắn đến kênh Telegram
$response = wp_remote_post($telegram_api_url, array(
'body' => array(
'chat_id' => $telegram_channel_name,
'text' => $telegram_message,
)
));
// Kiểm tra kết quả gửi tin nhắn
if (is_wp_error($response)) {
error_log('Lỗi gửi thông báo đến Telegram: ' . $response->get_error_message());
} else {
error_log('Thông báo đã được gửi đến Telegram!');
}
}
// Đăng ký hàm để thực hiện khi có bài đăng mới
add_action('publish_post', 'send_telegram_notification_post');
các bạn lưu ý thay hai thông số bên dưới thành các thông số của bạn
$telegram_bot_token = 'Token_telegram_here';
$telegram_channel_name = 'ID chat';
Sau khi lưu lại mỗi khi có bài đăng mới chúng ta sẽ nhận được thông báo như sau:
II: Gửi thông tin thông báo mỗi khi có đơn hàng mới được mua
Mình cần 1 đoạn code mỗi khi có đơn hàng mới sẽ thông báo cho admin biết
add_action( 'woocommerce_new_order', 'send_telegram_notification_new_order', 10, 1 );
function send_telegram_notification_new_order( $order_id ) {
$telegram_token = 'xxxxxxx';
$telegram_chat_id = '-xxxxx';
$order = wc_get_order( $order_id );
$order_total = $order->get_total();
$order_items = $order->get_items();
$customer_email = $order->get_billing_email();
$item_names = array();
foreach ( $order_items as $item ) {
$item_names[] = $item->get_name();
}
$message = 'Chúng ta có khách hàng mới nè!!!!' . PHP_EOL;
$message .= 'Đơn hàng mới: #' . $order_id . PHP_EOL;
$message .= 'Khách hàng: ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() . PHP_EOL;
$message .= 'Email khách hàng:' . $order->get_billing_email() . PHP_EOL;
$message .= 'Tổng Tiền Đơn Hàng: ' . $order->get_total() . PHP_EOL;
$url = 'https://api.telegram.org/bot' . $telegram_token . '/sendMessage';
$data = array(
'chat_id' => $telegram_chat_id,
'text' => $message,
);
wp_remote_post( $url, array(
'body' => $data,
) );
}
Thay các thành phần sau thành cái của bạn
$telegram_token = 'xxxxxxx';
$telegram_chat_id = '-xxxxx';
Kết quả chúng ta có như sau:
III: Thông Báo khi có bình luận mới
Mục tiêu là một đoạn code sẽ cho phép chúng ta nhận thông báo mỗi khi web có người để lại bình luận
// gửi lên telegram khi có bình luận mới
function send_comment_notification($comment_id) {
$comment = get_comment($comment_id);
$comment_author = $comment->comment_author;
$comment_content = $comment->comment_content;
$comment_post_url = get_permalink($comment->comment_post_ID);
$telegram_api_token = 'xxxxxxxx';
$telegram_chat_id = '-xxxxxxxx';
$telegram_message = "Có bình luận mới từ $comment_author" . PHP_EOL . " bài viết link: $comment_post_url." . PHP_EOL . " Nội dung bình luận: $comment_content";
$telegram_send_message_url = "https://api.telegram.org/bot$telegram_api_token/sendMessage?chat_id=$telegram_chat_id&text=$telegram_message";
wp_remote_get($telegram_send_message_url);
}
add_action('comment_post', 'send_comment_notification');
Thay 2 thông số bên dưới thành cái bạn cần
$telegram_api_token = 'xxxxxxxx';
$telegram_chat_id = '-xxxxxxxx';
Kết quả chúng ta có như sau
với những hook đơn giản chúng ta đã làm được những tính năng mà chúng ta cần thay vì phải sài plugin với nhiều tính năng rồi rủi ro hơn