Khi bạn mới cài đặt Moodle sẽ Không có nút "Tạo tài khoản mới" = "Create a new account". Muốn mở chức năng này:
- Bước 1. Site administration - Plugins - Authentication - Email-based self-registration - click vào hình con mắt nhắm (chưa bật) - Khi click vào mắt sẽ mở (bật).
- Bước 2: tiếp tục kéo xuống dưới mục:
* Những hướng dẫn trên chỉ là "hướng dẫn phụ".
- Như các bạn đã biết; việc Kích hoạt email rất bất tiện - chủ yếu là để ngăn chặn Spam.
Hôm nay, mình hướng dẫn các bạn Bỏ chức năng Kích hoạt Email khi đăng kí thành viên trên Moodle.
Việc này phải "đụng" đến code 1 xíu. (vì cho dù bạn bật chế độ No authentication, thì sẽ mất nút Đăng kí).
* Các bạn tiến hành các bước như sau:
- (sửa và xóa trực tiếp trên host hay sửa và xóa trong file của mã nguồn Moodle khi download rồi upload đè cũng được !!!).
+ Bước 1: Tìm và mở File auth.php theo đường dẫn:...\auth\email\auth.php
- Xóa bỏ đoạn code sau:
if (! send_confirmation_email($user)) {
print_error('auth_emailnoemail','auth');
} (khoảng dòng 100 - tùy phiên bản moodle)
+ Bước 2: Tìm đoạn code:
notice(get_string('emailconfirmsent', '', $user->email), "$CFG->wwwroot/index.php");- Thay thế thành:
notice ("Bạn đã đăng ký thành công! Bây giờ bạn có thể đăng nhập bằng tài khoản <b>" . $user->username . "</b>", "$CFG->wwwroot/index.php");
+ Bước 3: Tìm và mở File: signup.php theo đường dẫn ...\login\signup.php
- Tìm và sửa như sau:
$user->confirmed = 0 thành $user->confirmed = 1 (khoảng dòng 50 - tùy phiên bản moodle)
Như vậy vẫn giữ được nút Đăng ký, nhưng không gửi mail yêu cầu kích hoạt, đồng thời bật chức năng captcha khi đăng ký lên để chống bị spam.
* KẾT QUẢ:
Chúc các bạn thành công !!!
* Source: Sưu tầm (bài hướng dẫn này được thực hiện trên moodle 2, moodle 1 có khác đôi chút nhưng code vẫn sửa như trên).
Mình xài moodle 3.3 đã làm theo hướng dẫn nhưng khi mình xài OAuth2 để đăng nhập bằng Facebook thì hệ thống vẫn gửi mail xác nhận...Ad hỗ trợ mình nhé...

Chào Nhân,
- Bài viết trên chỉ dành cho người sử dụng tự đăng ký Thành viên (Email based self registration) mà không cần Kích hoạt Email khi đăng ký.
- Còn trường hợp của bạn là sử dụng Oauth 2 services để đăng nhập vào moodle bằng tài khoản gmail, facebook, microsoft... Nếu bạn sử dụng moodle 3.3.x thì chưa có chức năng tắt kích hoạt email khi đăng nhập bằng Oauth 2 services. Mình khuyên bạn nên moodle 3.4 vì từ moodle 3.4.x sẽ có chức năng tắt email kích hoạt.
- Sau khi upgrade lên moodle 3.4 và cài đặt cấu hình Oauth 2 services, nếu bạn gặp khó khăn ở bước nào thì mở Topic mình sẽ hỗ trợ.
Chúc bạn thành công!
Ok. Thanks Ad nhé...để mình up lên 3.4 xem thế nào.
Đối với bản 3.5 thì làm sao vậy ad?
Trong file signup.php ko có dòng này $user->confirmed = 0;
Em đưa file signup.php của moodle 3.5.x thầy code lại cho?
Dạ em gửi! Mong Thầy giúp sớm ạ! Thanks
Bạn test thử nha!
- Bạn tìm đến đoạn này
if (isloggedin() and !isguestuser()) {
// Prevent signing up when already logged in.
echo $OUTPUT->header();
echo $OUTPUT->box_start();
$logout = new single_button(new moodle_url('/login/logout.php',
array('sesskey' => sesskey(), 'loginpage' => 1)), get_string('logout'), 'post');
$continue = new single_button(new moodle_url('/'), get_string('cancel'), 'get');
echo $OUTPUT->confirm(get_string('cannotsignup', 'error', fullname($USER)), $logout, $continue);
echo $OUTPUT->box_end();
echo $OUTPUT->footer();
exit;
}+ Và thêm đoạn code này
$mform_signup = $authplugin->signup_form();
if ($mform_signup->is_cancelled()) {
redirect(get_login_url());
} else if ($user = $mform_signup->get_data()) {
$user->confirmed = 1;
$user->lang = current_language();
$user->firstaccess = 0;
$user->timecreated = time();
$user->mnethostid = $CFG->mnet_localhost_id;
$user->secret = random_string(15);
$user->auth = $CFG->registerauth;
// Initialize alternate name fields to empty strings.
$namefields = array_diff(get_all_user_name_fields(), useredit_get_required_name_fields());
foreach ($namefields as $namefield) {
$user->$namefield = '';
}
$authplugin->user_signup($user, true); // prints notice and link to login/index.php
exit; //never reached
}
+ Bạn có thể sử dụng file đã code lại ở file đính kèm! [Tuy nhiên, mình Khuyên bạn tự thêm để tránh bị cài mã độc]
+ Lưu ý:
- Sao lưu file signup.php trước khi chỉnh sửa - để khi cần có thể sử dụng lại.
Chúc bạn thành công!
Ok thanks Thầy. Code chạy rất ổn :v