Kiểm Tra Tính Hợp Lệ của Tên Miền Email Trong Đăng Ký WordPress: Chỉ Cho Phép Đăng Ký Với Gmail và Yahoo

// Kiểm tra tính hợp lệ của tên miền email trong quá trình đăng ký
function is_valid_email_domain($login, $email, $errors) {
    // Danh sách tên miền email hợp lệ
    $valid_email_domains = array('gmail.com', 'yahoo.com');
    $valid = false;

    // Lặp qua các tên miền hợp lệ để kiểm tra
    foreach ($valid_email_domains as $domain) {
        $domain_length = strlen($domain);
        $current_email_domain = strtolower(substr($email, -$domain_length));

        if ($current_email_domain === strtolower($domain)) {
            $valid = true;
            break;
        }
    }

    // Nếu tên miền không hợp lệ, thêm thông báo lỗi
    if (!$valid) {
        $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);