LearnDash is a paid plugin for creating courses using WordPress. It organizes the courses into modules and topics. Text, images, PDFs, videos, and more are allowed.
You can offer quizzes at the end of topics before allowing the student to move on to the next topic. Course certificates are also allowed once a course has been completed.