Wordpress Dev

Tự động gửi email chào mừng khi có ai đó comment lần đầu trên blog

Trước kia tôi có một ý tưởng là tại sao không gửi email chào mừng những bạn lần đầu tiên comment trên …

Trước kia tôi có một ý tưởng là tại sao không gửi email chào mừng những bạn lần đầu tiên comment trên trang của mình, làm như vậy có phải sẽ rất tuyệt và đoàn kết hay sao, ngoài ra họ còn có cái cảm giác được liên hệ với một cái blog sống tinh tươm và chuẩn mực 😀 chứ không phải một cái blog chết. Vậy là mình ngồi hí hoáy.

Tôi vào trong codex, tìm thấy hàm preprocess_comment, đây là nơi xử lý các thông tin thô để ghi vào cơ sở dữ liệu, thực tình là phải nghĩ cả kế chống SPAM, nhưng hàm này chưa được Akismet xử lý nên mỗi ngày tôi gửi hơn 100 cái thư vào hòm thư rác của bọn SPAM tặc.

//comment_author_email
function EmailCommentFirstTime( $comment ) {
    global $wpdb;
    $email = $comment['comment_author_email'];
    $ck = $wpdb->get_var(sprintf('select * from %s where comment_author_email = \'%s\' LIMIT 1', $wpdb->comments, $email));
    if ( ! $ck ) {
        $message = sprintf('
            <p>Xin chào <strong>%s</strong> !</p>
            <p>Tôi thấy rằng bạn đã thú vị khi ghé thăm blog Jam Việt và vừa để lại nhận xét, cũng có thể đây là lần đầu tiên bạn để lại một nhận xét trên blog cá nhân của tôi, cho dù nó có được duyệt hay không thì cũng cảm ơn bạn đã ghé thăm.</p>
            <p>Ở trên blog có rất nhiều các thông tin hấp dẫn và vui vẻ, mang tính giải trí rất cao, nên tôi sẽ cảm thấy rất vui nếu bạn thường xuyên ghé qua và để lại nhận xét/góp ý cho các thông tin đăng tải.</p>
            <p>Cảm ơn và chúc vui vẻ !</p>
            <p><i>Email này được gửi cho bạn một cách tự động, và chỉ lần đầu tiên bạn tham gia nhận xét cho bài đăng</i></p>
            <p>(Jam Việt - https://www.jamviet.com)</p>
        ', $comment['comment_author']);
        wp_mail( $email, 'Chào mừng bạn đến với blog Jam Việt', $message);
    }
    return $comment;
}

add_action( 'preprocess_comment' , 'EmailCommentFirstTime');

Đầu tiên là phải lấy được email của người comment, sau đó kiểm tra trong cơ sở dữ liệu xem có dữ liệu chưa, nếu chưa có thì người này mới comment cái đầu tiên, nên tôi sẽ gửi email.

Nếu các bạn cũng muốn làm như vậy thì có thể copy hàm này, thả vào trong file functions.php và chỉnh sửa lại đi một chút nhé.

Update: Do một số bạn gửi mail hiện lên toàn mã html mà không thể nào hiển thị theo ý thích của mình được, đó là do hàm mail trong WordPress luôn gửi dưới dạng text chứ không phải HTML, các bạn thêm hàm sau vào đầu file funtions.php nhé:

add_filter('wp_mail_content_type',create_function('', 'return "text/html";'));

Chúc các bạn thành công !

Thông tin liên quan