Home Uncategorized Tùy biến Email đăng ký thành viên trong Wordpress

Tùy biến Email đăng ký thành viên trong Wordpress

by admincp

[ad_1]

Nếu có người dùng đăng ký mới tại một trang web WordPress, người dùng đó và quản trị viên nhận được 1 email thông báo với nội dung như sau:

User:

From: myBlog ([email protected])
Subject: [myBlog] Your username and password info

Username: new_user

To set your password, visit the following address:<http://myblog/mylogin.php?action=rp&key=3oCJkevP1ZSSb0P8DlOW&login=new_user>

http://myblog/mylogin.php

Admin:

From: myBlog ([email protected])
Subject: [myBlog] New User Registration

New user registration on your site myBlog:

Username: new_user

Email: [email protected]

Đến phiên bản 4.8 nội dung trong mail rất khó tùy chỉnh. Cách duy nhất để thay đổi nội dung của mail là sử dụng hook vào hàm  wp_mail() hoặc thậm chí PHPMailer.

WordPress v4.9 hiện nay đã cung cấp khả năng tùy chỉnh dễ dàng các nội dung thông báo mail bằng cách sử dụng các hook action & filter trong WordPress với:

Các bộ lọc được sử lý sau khi người dùng thêm mới vào cơ sở dữ liệu.

Các bộ lọc để thông báo email dành cho người dùng và quản trị viên theo cùng một logic, chỉ khác về tên biến & giá trị:

$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname );

Giải thích tham số:

  • $wp_new_user_notification_email_admin: Mảng Array gồm các keys:  subject, message, headers
  • $user: đối tượng WP_User của người dùng đã đăng ký
  • $blogname: tên wordpress blog mà người dùng đăng ký

Với những thông tin mà hook cung cấp bạn có thể dễ dàng tạo mail tùy chỉnh cho riêng mình:

add_action( 'login_init', 'my_wp_new_user_notification_email_admin_init' );

function my_wp_new_user_notification_email_admin_init() {
    add_filter( 'wp_new_user_notification_email_admin', 'my_wp_new_user_notification_email_admin', 10, 3 );
}

function my_wp_new_user_notification_email_admin( $wp_new_user_notification_email, $user, $blogname ) {
    $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname );

    return $wp_new_user_notification_email;
}

Nội dung mail bây giờ trông như thế này:

Từ: myBlog ([email protected]) Subject: New user new_user registered.new_user ([email protected]) có registerd vào blog của bạn myBlog.

Tất nhiên, bạn có thể chèn thêm dữ liệu nếu muốn. Ví dụ, bạn có thể cho admin biết, bao nhiêu người dùng đã đăng ký blog với đoạn code sau:

function my_wp_new_user_notification_email_admin($wp_new_user_notification_email, $user, $blogname) {

    $user_count = count_users();

    $wp_new_user_notification_email['subject'] = sprintf('[%s] New user %s registered.',
$blogname, $user->user_login);
    $wp_new_user_notification_email['message'] =
    sprintf( "%s has registerd to your blog %s.", $user->user_login, $blogname) .
"nnr" . sprintf("This is your %d. user!", $user_count['total_users']);

    return $wp_new_user_notification_email;

}

Tham số headers có thể được sử dụng để thay đổi một số thông tin về tiêu đề:

$wp_new_user_notification_email['headers'] = "From: myBlog <[email protected]> nr cc: Admin 2 <[email protected]>";

Trong ví dụ này From  chứa thông tin của mail được thay đổi và người dùng [email protected] được thêm với tư cách là người nhận bổ sung. Như bạn có thể thấy, các nội dung thêm vào headers sẽ được phân cách bằng “nr”.

Như mình đã đề cập ở phía trước, tất cả có thể được thực hiện bằng cách sử dụng hàm wp_mail() và PHPMailer nhưng các bộ lọc mới mang lại giải pháp thuận tiện hơn.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên TwitterFacebook



[ad_2]

Source link

Leave a Comment