Skip to content

Phương thức đăng ký (Enroll Methods) ​

Enroll Method = cách học viên có thể đăng ký vào một khoá học. Mỗi khoá có thể có nhiều method khác nhau hoạt động song song.

Một dòng tóm tắt

Các loại: Free (đăng ký miễn phí), Code (mã đăng ký giới hạn), Paid (qua checkout), Học thử (vào học miễn phí một phần / trong thời hạn, rồi mua để học tiếp), Đăng ký cần duyệt (nộp đơn, ai đó duyệt rồi mới được vào). Phương thức được cấu hình trên trang sửa khoá học, nên người làm là người có quyền sửa khoá.

Vào quản lý Enroll Methods ​

Phương thức đăng ký không có mục riêng trên sidebar — chúng gắn với từng khoá. Mở trang sửa khoá học (Quản lý khóa học → Khóa học → chọn khoá) → tab Cách ghi danh.

Cần quyền sửa khoá học

Tab này nằm trên trang sửa khoá, nên chỉ người có quyền sửa khoá — vai trò Xây dựng khoá học (người soạn khoá) hoặc Quản trị — mới mở được. Vai trò Quản lý đào tạo mặc định chỉ xem khoá học: bấm vào trang sửa sẽ bị từ chối truy cập (403). Muốn tạo hay sửa phương thức (vd mã ghi danh cho một cohort), hãy nhờ người soạn khoá / Tenant Admin, hoặc xin Tenant Admin cấp thêm quyền sửa khoá.

Bảng list:

  • Tên phương thức
  • Loại — Miễn phí, Mã ghi danh, Trả phí, Học thử, Đăng ký cần duyệt (hai loại Trả phí và Học thử chỉ có khi tổ chức bật bán hàng; Đăng ký cần duyệt chỉ có khi bật module Đơn từ học viên)
  • Vai trò khi ghi danh
  • Thời hạn truy cập (ngày) — để trống là không hết hạn
  • Đã dùng — số lượt đã dùng

Loại Free (Miễn phí) ​

Học viên tự click "Đăng ký miễn phí" trên trang khoá → vào học ngay.

Tạo Free method ​

  1. Người có quyền sửa khoá: mở trang sửa khoá → tab Cách ghi danh → Tạo mới.
  2. Chọn Loại = Free.
  3. (Tuỳ chọn) Đặt:
    • Số lượt tối đa — giới hạn tổng số học viên đăng ký qua method này.
    • Hết hạn — datetime; sau đó method tự inactive.
    • Yêu cầu đăng nhập — bật → guest user phải tạo tài khoản trước.
  4. Bật Active.
  5. Lưu.

Khi nào dùng? ​

  • Khoá giới thiệu miễn phí để dụ học viên đăng ký tài khoản.
  • Khoá cộng đồng — không có giá trị thương mại trực tiếp.
  • Beta test giới hạn 100 user → đặt max_uses = 100.

Loại Code (Mã đăng ký) ​

Học viên click "Nhập mã đăng ký" → điền mã → kiểm tra → enroll.

Tạo Code method ​

  1. Tạo mới với Loại = Code.
  2. Cấu hình:
    • Mã code — nhập tay (vd: WORKSHOP-2026-04) hoặc auto-generate.
    • Số lượt tối đa — số học viên tối đa dùng được mã.
    • Lượt mỗi user — 1 = mỗi user chỉ dùng 1 lần (mặc định); unlimited = không giới hạn.
    • Hết hạn — datetime.
    • Số lượt đã dùng — tự cập nhật.
  3. Bật Active.
  4. Lưu.

Khi nào dùng? ​

  • Workshop B2B — phát mã cho 50 nhân viên công ty X.
  • Khoá miễn phí có kiểm soát — tránh ai cũng truy cập, chỉ học viên có mã (bạn quyết định).
  • Mã marketing — campaign Tết / 30/4 phát mã giảm giá / unlock khoá.
  • Bonus mua subscription — tặng mã unlock khoá đặc biệt.

Quản lý mã sau khi tạo ​

  • Theo dõi used_count — biết bao nhiêu người đã dùng.
  • Tạm dừng — toggle Active = false nếu phát hiện mã bị leak.
  • Xoá — soft delete; mã không nhập được nữa nhưng enrollment đã tạo vẫn giữ.

Cấp mã hàng loạt

Hiện UI không hỗ trợ tạo nhiều mã cùng lúc. Cách tạm:

  • Một mã shared dùng được nhiều lần → đặt max_uses cao.
  • Mỗi user một mã riêng → tạo từng cái (UI hoặc nhờ Tenant Admin script).

Loại Paid (Trả phí) ​

Học viên click "Mua ngay" → checkout → thanh toán thành công → enroll.

Tạo Paid method ​

Chỉ Course Manager / Tenant Admin tạo

Method Paid liên kết với EcommerceProductVariant — đây là việc của course_manager (set giá khoá) hoặc Tenant Admin (cấu hình ecommerce). Training Manager không trực tiếp tạo Paid method.

Bạn (Training Manager) xem Paid methods để biết kênh doanh thu của khoá, không sửa.

Loại Học thử (Trial) ​

Học viên bấm Học thử miễn phí trên trang khoá → được vào học ngay, nhưng có giới hạn:

  • Bài học được phép học thử — chọn các bài trong khoá được mở. Để trống = mở tất cả bài (chỉ giới hạn thời gian).
  • Thời hạn truy cập (ngày) — số ngày được học kể từ khi ghi danh. Để trống = không hết hạn (chỉ giới hạn bài).

Bài ngoài phạm vi hiện "Bài học chưa mở trong bản học thử"; hết hạn thì hiện "Thời gian học thử đã kết thúc". Cả hai kèm lời mời mua khoá. Học viên mua khoá thì lượt học thử được nâng cấp thành ghi danh trả phí — không phải ghi danh lại, tiến độ giữ nguyên.

Loại này do module bán hàng cung cấp, nên giống Trả phí, nó gắn với việc bán khoá — thường người cấu hình là course_manager hoặc Tenant Admin. Tổ chức có thể bật thêm thư nhắc sắp hết hạn học thử, thư khi học viên học xong phần học thử, và mã giảm giá riêng cho người học thử (cấu hình ở pane Chuyển đổi học thử trong Cài đặt).

Thời hạn được chốt lúc ghi danh

Sửa Thời hạn truy cập (ngày) của phương thức không ảnh hưởng học viên đã ghi danh trước đó — giá trị được chốt vào từng lượt ghi danh. Áp dụng cho mọi loại phương thức, không riêng Học thử.

Loại Approval (Đăng ký cần duyệt) ​

Học viên không tự vào được khoá: trên trang khoá họ thấy nút Xin học khoá này, điền lý do và gửi đơn. Được duyệt thì hệ thống tự ghi danh qua chính method này (nên cửa sổ truy cập và vai trò của method vẫn được áp dụng như mọi đường ghi danh khác).

Dùng khi khoá có chi phí/chỗ giới hạn, hoặc doanh nghiệp muốn quản lý duyệt trước khi nhân viên học ngoài phần bắt buộc.

Tạo Approval method ​

  1. Người có quyền sửa khoá: mở trang sửa khoá → tab Cách ghi danh → Tạo mới.
  2. Chọn Loại = Đăng ký cần duyệt.
  3. Lưu. Không cần cấu hình thêm — ai duyệt là do Quy trình duyệt đơn quyết định (mặc định: training_manager).

Ai duyệt và duyệt ở đâu

Cấu hình tại Đào tạo → Quy trình duyệt đơn, loại đơn Đăng ký học. Đơn hiện ở /admin → Đơn từ học viên (phạm vi theo vai trò) hoặc /manager → Đơn chờ tôi duyệt (phạm vi Quản lý trực tiếp). Xem Đơn từ trong doanh nghiệp.

Loại này chỉ có khi module Đơn từ học viên đang bật

Hành vi duyệt thuộc module StudentRequests. Tenant chưa bật module đó sẽ không thấy loại này trong ô chọn.

Method theo Group (gián tiếp) ​

Khoá thuộc Group → user trong Group có quyền truy cập không qua method, mà qua group attach. Đây là cách hoạt động của Subscription:

  • Học viên mua Plan → vào Group → khoá thuộc Group auto enroll.
  • Không cần Free/Code/Paid method cho khoá này nếu chỉ bán qua Subscription.

Bạn quản lý Group attach trong Quản lý lớp đào tạo → Lớp → tab Học viên (theo Group) hoặc trong User Management → Groups (Tenant Admin scope).

Vòng đời method ​

Active ──► Inactive (tay hoặc tự động khi hết hạn / hết lượt)
   ↓
Soft delete
  • Active — học viên thấy + dùng được.
  • Inactive — không thấy trên trang khoá; mã code không nhập được.
  • Hết lượt (used_count >= max_uses) → tự ẩn nhưng không inactive.
  • Hết hạn (expires_at < now()) → tự inactive.
  • Soft delete — biến mất khỏi list (giữ DB cho audit).

Quan hệ với các module khác ​

Với Course ​

Mỗi method gắn 1-1 với một Course. Nếu khoá không có method active nào → học viên không tự đăng ký được (chỉ qua Batch / Group / manual).

Với Ecommerce ​

Paid methods → EcommerceProductVariant. Học viên mua → đơn hàng tạo → khi paid, listener tạo enrollment với source=method.

Với Voucher ​

Voucher có thể áp cho Paid methods → giảm giá trước khi checkout. Voucher do Sales / Finance vận hành ở module Ecommerce.

Với Notifications ​

Khi enrollment qua method tạo:

  • Email "Bạn đã đăng ký thành công khoá X".
  • Notification in-app.

Workflow tạo cohort B2B (ví dụ) ​

Tình huống: Công ty X mua workshop "Python cơ bản" cho 30 nhân viên.

  1. Bạn tạo Free method cho khoá "Python cơ bản" với code=ACME-CORP-2026, max_uses=30, expires_at=2026-05-31.
  2. Bạn gửi mã cho HR công ty X qua email.
  3. HR phát mã cho 30 nhân viên.
  4. Mỗi nhân viên truy cập trang khoá → nhập mã → enroll.
  5. Hệ thống auto:
    • Tạo enrollment.
    • Gửi welcome email.
    • Tăng used_count.
  6. Sau 30 lần dùng (hoặc 31/05), method tự ẩn.

B2B chuyên nghiệp hơn

Thay vì chỉ phát mã, dùng Batch + Group để có:

  • Lịch buổi học cho cohort.
  • Trainer phụ trách.
  • Báo cáo điểm danh chuẩn cho khách hàng.

Method code phù hợp workshop tự học; Batch phù hợp đào tạo có giảng viên.

Câu hỏi thường gặp ​

Tôi tạo mã code nhưng học viên báo "mã không hợp lệ"? Check:

  • Method Active?
  • used_count < max_uses chưa?
  • expires_at chưa qua?
  • User đã dùng mã này trước (nếu usage_per_user=1)?

Method Inactive rồi mà enrollment cũ có bị huỷ? Không. Inactive chỉ chặn đăng ký mới. Enrollment cũ vẫn active.

Mã code có phân biệt hoa thường không? Mặc định case-sensitive. Hệ thống có thể normalize (uppercase) tuỳ cấu hình. Test với mã thử trước khi phát.

Nếu khoá học bị xoá, method có theo không? Soft delete khoá → method vẫn tồn tại (orphan). Khi học viên nhập mã → lỗi "khoá không tồn tại". Tốt nhất là disable method trước khi xoá khoá.

Có giới hạn số method per khoá? Không có giới hạn cứng. Thực tế nên ≤ 5 method active để học viên không rối.

Mã code có thể chia sẻ giữa các khoá? Không — mỗi mã gắn 1-1 với một khoá. Cần multi-course unlock → dùng Subscription Plan + Group.

Theo dõi mã code đã được phát cho ai? Hệ thống không track ai nhập mã (chỉ track ai đã dùng — qua enrollment). Nếu cần "ai được phát mã", quản lý ngoài (Excel/CRM) đối chiếu với enrollment.

LMS Documentation