Automattic / sensei

Sensei LMS - Online Courses, Quizzes, & Learning
https://senseilms.com
GNU General Public License v2.0
527 stars 197 forks source link

Allow users to retake a course they've already completed #2483

Open jenhooks opened 5 years ago

jenhooks commented 5 years ago

This is an enhancement request based upon #2356 and 1626132-zen. A possible use-case here is for sites that offer certifications that need to be renewed on an annual basis. These students need to take the same course each year to maintain certification.

The user recommends:

a notice at the time of checkout to the customer stating that they are purchasing a course that they have already purchased before, and let the customer decide whether or not to continue with checkout.

Creating duplicates of existing courses with slightly different names (perhaps with "Winter 2018", "Spring 2019", etc appended to the title) was proposed as a workaround, but the user cites a very valid concern of the site becoming too unwieldy and large if this is done.

1022 or similar is a possible complication?

lkraav commented 5 years ago

Course duplication should definitely be considered only as a last resort desperation "this plugin's development is dead forever" type of action.

proteanstar commented 5 years ago

This is what I just wrote to Automattic in response to not being helped by them in my support ticket request on this issue.

Please fix the problem that Automattic created a year ago.

https://github.com/Automattic/sensei/issues/1823

I am not the only one with this issue.

It should never have happened in the first place.

As I said: https://github.com/Automattic/sensei/issues/2356

I have had customers purchasing the same course more than once, and from the same customer account. One thing that I know from being in business for nearly 40 years is this: Customers do not always tell you when there is a problem. I hope that Automattic takes note of the fact that someone is having to write a plug-in to address their error. Automattic should address this issue. What I recommend is a notice at the time of checkout to the customer stating that they are purchasing a course that they have already purchased before, and let the customer decide whether or not to continue with checkout. When they take the course the second time, or more, they must have their transcript (grading records, progress through each Lesson of the Course) and Certificate of Completion preserved for each time that they have completed it. This is a requirement for their license renewal and certification renewal. The Licensing Boards and Certification Boards allow the same CE Courses to be taken again. Now, I am going to have to find a work-around. As I said above, if the prior Coursework is being written over, then there is a serious problem. I am fixing this on my own immediately, and I am not waiting for anyone to help. I learned that many years ago.

Here is the real problem.

If I have to keep adding more and more courses to my website because of this error by Automattic, then my site will balloon into an unworkable mess for my clients and myself to navigate and to maintain.

The answer is exactly what I said above.

What I recommend is a notice at the time of checkout to the customer stating that they are purchasing a course that they have already purchased before, and let the customer decide whether or not to continue with checkout. When they take the course the second time, or more, they must have their transcript (grading records, progress through each Lesson of the Course) and Certificate of Completion preserved for each time that they have completed it. This is a requirement for their license renewal and certification renewal.

To add to this: What I recommend is a notice at the time of checkout to the customer stating that they are purchasing a course that they have already purchased before, and let the customer decide whether or not to continue with checkout. The notice must state that their course progress, transcript, including the dates that they have successfully passed each lesson with their grade, and their Certificate of Completion with its completion date must be preserved.

What is unacceptable is if by purchasing the same course their previous Certificate of Completion and transcript is written over. That is unacceptable for their licensing requirements and certification requirements by the regulatory bodies.

All Continuing Education records must be maintained.

It is also the responsibility of the Continuing Education Provider to maintain these records for all students.

proteanstar commented 5 years ago

Correction: The notice must state that if they purchase the same course again, their course progress, transcript, including the dates that they have successfully passed each lesson with their grade, and their Certificate of Completion with its completion date will be preserved. In other words, there is no problem created for them by purchasing the same course again. The wording can be tightened up to be very clear and simple, right to the point.

proteanstar commented 5 years ago

I am dealing with this nightmare. Automattic, please fix the problem that you created.

My student was able to purchase the same course again, but the system is not letting the student access it once purchased. They used a different payment method to get around the restriction, apparently.

First two orders were with Square, and the third (second time purchasing the same course, this morning) was with PayPal (send money, rather than use a credit card).

At this time, I have different versions of this particular course.

This is also another problem that I had to solve myself, with no help from Automattic. That involves setting up the Modules correctly, and splitting the courses into different courses with a different directory hierarchy. I did that some years ago. I was told that it would be too difficult by Automattic, and in fact, they had no idea how to do it. I did it.

Thanks again

lkraav commented 5 years ago

@proteanstar I would not hope anything to move here about this in less than 1 month. This is a complicated issue where behaviors chosen affect all storekeepers. Working with external contractors at https://codeable.io or similar is your best chance of moving faster, but no guarantees there either.

donnapep commented 5 years ago

I'd like to jump in and clarify a few things on what has become a rather contentious issue.

To prevent the "The product you are buying contains a course you are already taking" notice, you can remove the hook by adding the following code to your child theme or by using a plugin like Code Snippets:

add_action( 'init', 'remove_sensei_add_to_cart_hook', 11 );

function remove_sensei_add_to_cart_hook(){
  remove_action( 'woocommerce_add_to_cart', array( 'Sensei_WC', 'do_not_add_course_to_cart_if_user_taking_course' ), 10, 6 );
}

This will enable someone who has already purchased the course to purchase it again.

Please note, however, that doing so will not resolve this second item:

When they take the course the second time, or more, they must have their transcript (grading records, progress through each Lesson of the Course) and Certificate of Completion preserved for each time that they have completed it.

This is functionality that has never been offered by Sensei, and is not a decision to be made lightly as it would involve some major architectural changes. We would give this request serious consideration if it would solve a real problem for a significant number of our users. So far, this has not been the case. As a result, this is not a feature that we are planning to add to Sensei in the foreseeable future.

I hope that this decision from the Sensei team helps to clarify expectations so that you can plan accordingly.

lkraav commented 5 years ago

When they take the course the second time, or more, they must have their transcript (grading records, progress through each Lesson of the Course) and Certificate of Completion preserved for each time that they have completed it.

I think the action choice here for someone really depending on this feature could be the following:

proteanstar commented 5 years ago

Please see my comment here. https://github.com/Automattic/sensei/issues/2356#issuecomment-445325382

One thing that I know from being in business for nearly 40 years is this: Customers do not always tell you when there is a problem.

You may not know the extent of the problem, or how many customers and how much business you have lost and will lose because of this.

This is functionality that has never been offered by Sensei, and is not a decision to be made lightly as it would involve some major architectural changes. We would give this request serious consideration if it would solve a real problem for a significant number of our users. So far, this has not been the case. As a result, this is not a feature that we are planning to add to Sensei in the foreseeable future.

I hope that this decision from the Sensei team helps to clarify expectations so that you can plan accordingly.

rwkyyy commented 9 months ago

surprised this is not a general option checkbox or something like that. I had to dig a lot to find the hook, thank you @donnapep as her solution should be working as well!

github-actions[bot] commented 9 months ago

Support References

This comment is automatically generated. Please do not edit it.

StefMattana commented 8 months ago

7424279-zen

jinnypark commented 7 months ago

5256527-zen 7563946-zen: "I would like to be able to do that cause our student bought the course, so it's their"s. That is why if they want to do the course all over again, it would be great for them to be able to do it."

jinnypark commented 7 months ago

7605605-zen

When currently enrolled users go to purchase the course again to extend it before it expires, it says that they are already enrolled in the course.

hike734 commented 6 months ago

Our solution to this problem ended up as follows:

  1. Created a "renewal course" virtual product that wasn't tied to any course
  2. Had our students purchase it
  3. Manually extend their course expiration date.

Perhaps there is a way for Sensei to incorporate some solution using this sort of mechanism for renewals.