Nhiều khi chủ sở hữu trang web WordPress có thể thấy rằng người dùng đang đăng ký trên trang web của họ bằng một số loại email khác nhau và chắc chắn nó không giống như các loại email phổ biến mà người dùng thường sử dụng để đăng ký trên một trang web. Sau khi cài đặt một số plugin bảo mật, bạn cũng sẽ thấy vấn đề. Họ đang đăng ký trên trang web của bạn với mục đích gửi thư rác và bạn muốn dừng các loại đăng ký này.
Vâng, tôi có một giải pháp cho bạn. Bạn có thể tạo một số danh sách email miền cho phép để người dùng hoặc khách truy cập chỉ có thể đăng ký trên trang web của bạn bằng những email bạn muốn. Tôi sẽ chỉ cho bạn trong bài viết này cách cho phép đăng ký chỉ bằng Gmail và yahoo mail. Tất cả các loại đăng ký email khác sẽ bị từ chối. Vì vậy, bạn sẽ có được các thành viên đã đăng ký thực sự trên trang web WordPress của mình và họ không phải từ bất kỳ email rác nào.
Vậy phải làm như thế nào?
Ở đây tôi sẽ cho bạn thấy mã sẽ từ chối đăng ký từ tất cả các miền email khác và chỉ cho phép đăng ký từ Gmail và email yahoo. Xem mã bên dưới
function is_valid_email_domain($login, $email, $errors ){
$valid_email_domains = array("gmail.com","yahoo.com");// whitelist email domain lists
$valid = false;
foreach( $valid_email_domains as $d ){
$d_length = strlen( $d );
$current_email_domain = strtolower( substr( $email, -($d_length), $d_length));
if( $current_email_domain == strtolower($d) ){
$valid = true;
break;
}
}
// if invalid, return error message
if( $valid === false ){
$errors->add('domain_whitelist_error',__( '<strong>ERROR</strong>: you can only register using @gmail.com or @yahoo.com emails' ));
}
}
add_action('register_post', 'is_valid_email_domain',10,3 );
Chỉ cần sao chép đoạn mã trên và dán vào tệp functions.php của chủ đề. Nếu functions.php không tồn tại, hãy tạo một tệp. Hoặc bạn cũng có thể thực hiện bằng cách tạo một plugin và dán nó vào tệp PHP của plugin. Sau khi thêm mã này, hãy tự mình thử. Hãy thử đăng ký bằng bất kỳ email nào khác và bạn sẽ nhận được mã thông báo lỗi. Đăng ký sẽ chỉ cho phép sử dụng Gmail và yahoo mail. Bạn có thể thêm nhiều miền email hơn bằng cách thêm nhiều miền hơn bên trong mã:
$valid_email_domains = array("gmail.com","yahoo.com");// whitelist email domain lists