Code Thay cho Plugin WordPress: Telegram Notification

6 Likes Comment

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

0 0 votes
Article Rating

You might like

Avatar

About the Author: Vô Ưu

Xin chào! Tôi là Vouu, người sáng lập blog này. Tôi là một người yêu thích. Tôi có một công việc ban ngày với tư cách là một chuyên viên bơm vá săm xe các loại, và trang web này là một trong những hoạt động yêu thích của tôi, đặc biệt là trong những lúc rảnh rỗi. Hy vọng bạn thích sử dụng trang web này, và nó sẽ mang lại cho bạn nhiều điều bổ ích. Phản hồi từ người đọc sẽ truyền cảm hứng cho tôi để tôi có thể viết được nhiều hơn nữa !. Bạn chỉ cần để lại nhận xét bên dưới nếu bạn thấy bài viết này hữu ích. Chúc bạn ngày mới tốt lành!
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x