Vì sao cần chặn một số tên người dùng?
Nhiều bot hoặc người dùng xấu thường sử dụng những tên như admin, root hoặc support nhằm tạo tài khoản trông giống như quản trị viên để lừa người dùng khác. Ngoài ra, việc có nhiều tài khoản tên “test” hay “guest” cũng khiến dữ liệu trở nên khó quản lý. Do đó, việc giới hạn danh sách username được phép đăng ký là một bước bảo mật quan trọng cho website của bạn.
Đoạn mã PHP chặn username bị cấm
Bạn có thể chèn đoạn mã sau vào plugin Code Snippets (chọn chế độ Run everywhere) hoặc trong file functions.php của theme đang kích hoạt:
// 1) Core-level: thêm vào danh sách username cấm của WordPress
add_filter('illegal_user_logins', function( $usernames ) {
$blocked = array(
'admin','administrator','root','test','webmaster',
'support','info','guest','moderator'
);
$blocked = array_map('strtolower', $blocked);
return array_unique( array_merge( $usernames, $blocked ) );
});
// Helper: kiểm tra username bị cấm (chính xác + chứa từ khóa)
function im_is_blocked_username( $username ) {
$u = strtolower( trim( $username ) );
// a) Cấm trùng khớp chính xác
$blocked_exact = array(
'admin','administrator','root','test','webmaster',
'support','info','guest','moderator'
);
if ( in_array( $u, $blocked_exact, true ) ) return true;
// b) (Tùy chọn) Cấm nếu username chứa các từ khóa
$blocked_keywords = array(
// 'admin', 'support', 'moderator', // bật nếu muốn cấm cả "admin123", "support-team", ...
);
foreach ( $blocked_keywords as $kw ) {
if ( $kw !== '' && strpos( $u, $kw ) !== false ) return true;
}
return false;
}
// 2) Form đăng ký WordPress core
add_filter('registration_errors', function( $errors, $sanitized_user_login ) {
if ( im_is_blocked_username( $sanitized_user_login ) ) {
$errors->add( 'restricted_username', __( 'Tên đăng nhập này không được phép. Vui lòng chọn tên khác.', 'init-manga' ) );
}
return $errors;
}, 10, 3);
// 3) Form đăng ký WooCommerce
add_filter('woocommerce_registration_errors', function( $errors, $username ) {
if ( im_is_blocked_username( $username ) ) {
$errors->add( 'restricted_username', __( 'Tên đăng nhập này không được phép. Vui lòng chọn tên khác.', 'init-manga' ) );
}
return $errors;
}, 10, 3);
?>
Cách mở rộng danh sách username bị chặn
Bạn có thể thêm hoặc bớt các username trong mảng $blocked hoặc $blocked_exact. Ngoài ra, nếu muốn cấm những username chứa từ khóa cụ thể (như admin123 hoặc support-team), chỉ cần bỏ dấu comment trong mảng $blocked_keywords.
Kết luận
Đây là cách hiệu quả và an toàn để ngăn người dùng đăng ký với các tên tài khoản không hợp lệ trên WordPress và WooCommerce. Đoạn mã hoạt động nhẹ nhàng, không xung đột plugin, và giúp website của bạn tránh được các tài khoản giả mạo hoặc nhạy cảm. Bạn có thể tùy chỉnh danh sách username bị chặn cho phù hợp với cộng đồng hoặc lĩnh vực của mình.
Bình luận