Bạn có muốn mỗi khi tài khoản quản trị viên trong WordPress đăng nhập thì sẽ gửi một thông báo đến email tùy chỉnh của bạn không? Điều này rất hữu ích khi bạn muốn theo dõi các tài khoản như người viết bài, biên tập viên hoặc những người có quyền truy cập cao khác trên trang web của mình, đồng thời giúp bạn duy trì và kiểm soát các tài khoản quản trị cũng như bảo mật của trang web.
Cách gửi email thông báo khi tài khoản admin đăng nhập trang Wordpress
Mục đích nhận thông báo khi quản trị viên đăng nhập:
- Nâng cao an ninh cho trang web WordPress bằng cách theo dõi hoạt động đăng nhập của quản trị viên.
- Nhận thông báo qua email khi có quản trị viên đăng nhập, giúp bạn phát hiện truy cập trái phép kịp thời.
Lợi ích của gửi mail thông báo đăng nhập cho Admin
- Dễ dàng thực hiện: Chỉ cần thêm một đoạn mã ngắn vào file functions.php của theme WordPress.
- Hiệu quả: Gửi email thông báo kịp thời khi có quản trị viên đăng nhập.
- Nhẹ: Không ảnh hưởng đến hiệu suất trang web.
Các bước thực hiện:
Lưu ý: Để sử dụng tính năng này, bạn cần đảm bảo trang web của bạn có thể gửi email thành công. Nếu bạn gặp khó khăn trong việc cấu hình email, bạn có thể đọc bài viết của ItsmeIT về cách sử dụng code gửi mail SMTP cho Wordpress.
Bước 1: Truy cập file functions.php:
- Sử dụng FTP hoặc trình quản lý tệp tin để truy cập vào thư mục
/wp-content/themes/
. - Mở file
functions.php
của theme WordPress đang sử dụng.
Bước 2: Thêm mã ( code) bên dưới vào cuối file
add_action('wp_login', 'send_admin_login_email', 10, 2); function send_admin_login_email($user_login, $user) { if (user_can($user, 'manage_options')) { $admin_email = 'buivanloi.2010@gmail.com'; $cc_email = get_option('admin_email'); $cc_email_additional = 'itsmeit.biz@gmail.com'; $user_ip = $_SERVER['REMOTE_ADDR']; $user_browser = $_SERVER['HTTP_USER_AGENT']; $user_roles = $user->roles; $user_role = array_shift($user_roles); $subject = 'User '. $user_login . ' with role [' . $user_role . '] logged in'; $message = 'Admin ' . $user_login . ' logged in to the website at ' . date('Y-m-d H:i:s') . ".\n"; $message .= 'IP Address: ' . $user_ip . ".\n"; $message .= 'Browser: ' . $user_browser; $headers = array('Content-Type: text/html; charset=UTF-8'); $headers[] = 'Cc: ' . $cc_email . ',' . $cc_email_additional; wp_mail($admin_email, $subject, $message, $headers); } }
Lưu ý:
- Thay thế
$admin_email
bằng địa chỉ email bạn muốn nhận thông báo. - Đoạn mã trên chỉ là ví dụ và có thể cần điều chỉnh để phù hợp với cấu trúc trang web của bạn.
Bước 3: Lưu lại file functions.php
- Sau khi thêm đoạn mã, lưu file
functions.php
.
Bước 4: Kiểm tra và xác nhận gửi email đã hoạt động:
- Đăng nhập vào trang quản trị WordPress để kích hoạt tính năng thông báo.
- Kiểm tra hộp thư đến của bạn để xem email thông báo khi bạn đăng nhập. (Giống như ảnh chụp màn hình của ItsmeIT bên dưới).
Giải thích đoạn mã:
$user_login
: Tên đăng nhập của người dùng đăng nhập vào trang web.$user
: Đối tượng người dùng, chứa thông tin đăng nhập của người dùng như tên, email, vai trò, v.v.$admin_email
: Địa chỉ email của admin nhận thông báo về việc đăng nhập.$cc_email
: Địa chỉ email được đính kèm trong trường “cc” của email thông báo.$cc_email_additional
: Địa chỉ email bổ sung được đính kèm trong trường “cc” của email thông báo.$user_ip
: Địa chỉ IP của người dùng đăng nhập.$user_browser
: Thông tin về trình duyệt mà người dùng đăng nhập đang sử dụng.$user_roles
: Một mảng chứa các vai trò của người dùng trên trang web.$user_role
: Vai trò của người dùng, được lấy ra từ mảng$user_roles
.$subject
: Tiêu đề của email thông báo, bao gồm tên người dùng và vai trò của họ.$message
: Nội dung của email thông báo, bao gồm thông tin về việc đăng nhập của người dùng như thời gian, địa chỉ IP và trình duyệt.$headers
: Một mảng chứa các đầu email như “Content-Type” và “Cc” để gửi email thông báo.
Sử dụng mã (code) tùy chỉnh để gửi email thông báo khi admin đăng nhập WordPress là một cách đơn giản và hiệu quả để bảo vệ trang web của bạn khỏi truy cập trái phép. Hãy nhớ thay đổi thông tin email cho phù hợp với nhu cầu của bạn và lưu ý sao lưu trang web trước khi thực hiện bất kỳ thay đổi nào.
– Advertising –