Hướng dẫn chặn đăng ký Username không hợp lệ trong WordPress và WooCommerce

Trong quá trình quản lý website WordPress, việc người dùng cố tình đăng ký tài khoản với những tên nhạy cảm như admin, support hoặc webmaster có thể gây rủi ro về bảo mật và gây nhầm lẫn cho các thành viên khác. Bài viết này hướng dẫn bạn cách chặn các tên người dùng không hợp lệ khi đăng ký, áp dụng cho cả WordPress core lẫn WooCommerce.

Hướng dẫn chặn đăng ký Username không hợp lệ trong WordPress và WooCommerce

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


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...