Skip to content

Instantly share code, notes, and snippets.

@hlashbrooke
Last active October 3, 2019 14:52
Show Gist options
  • Save hlashbrooke/8279051 to your computer and use it in GitHub Desktop.
Save hlashbrooke/8279051 to your computer and use it in GitHub Desktop.
Sensei - Remove user from course
<?php
function sensei_remove_user_from_course( $course_id = 0, $user_id = 0 ) {
global $woothemes_sensei;
$course_id = intval( $course_id );
$user_id = intval( $user_id );
if( $course_id > 0 && $user_id > 0 ) {
// Get all course lessons
$course_lessons = WooThemes_Sensei_Course::course_lessons( $course_id );
// Process all lessons for course
foreach( $course_lessons as $lesson_item ) {
// Process all quizzes for lesson
$lesson_quizzes = WooThemes_Sensei_Lesson::lesson_quizzes( $lesson_item->ID );
if( 0 < count( $lesson_quizzes ) ) {
foreach( $lesson_quizzes as $quiz_item ) {
// Remove quiz answers
WooThemes_Sensei_Utils::sensei_delete_quiz_answers( $quiz_item->ID, $user_id );
// Remove quiz grade
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $quiz_item->ID, 'user_id' => $user_id, 'type' => 'sensei_quiz_grade' ) );
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $quiz_item->ID, 'user_id' => $user_id, 'type' => 'sensei_quiz_asked' ) );
}
}
// Remove lesson
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $lesson_item->ID, 'user_id' => $user_id, 'type' => 'sensei_lesson_start' ) );
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $lesson_item->ID, 'user_id' => $user_id, 'type' => 'sensei_lesson_end' ) );
}
// Remove course
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $course_id, 'user_id' => $user_id, 'type' => 'sensei_course_start' ) );
WooThemes_Sensei_Utils::sensei_delete_activities( array( 'post_id' => $course_id, 'user_id' => $user_id, 'type' => 'sensei_course_end' ) );
}
}
?>
<?php
add_action( 'wp', 'sensei_remove_user' );
function sensei_remove_user() {
$course_id = 123;
$user_id = 456;
sensei_remove_user_from_course( $course_id, $user_id );
}
?>
@mkormendy
Copy link

I don't think this takes care of the user's module progress. which shows up as completed when they restart the course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment