- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
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 infoUsername: new_user
To set your password, visit the following address:<http://myblog/mylogin.php?action=rp&key=3oCJkevP1ZSSb0P8DlOW&login=new_user>
Admin:
From: myBlog ([email protected])
Subject: [myBlog] New User RegistrationNew 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) . "\n\n\r" . 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]> \n\r 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 admin2@myblog đượ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 “\n\r”.
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ích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype