public function sensei_complete_lesson() { global $post, $current_user; // Handle Quiz Completion if (isset($_POST['quiz_action']) && wp_verify_nonce($_POST['woothemes_sensei_complete_lesson_noonce'], 'woothemes_sensei_complete_lesson_noonce')) { $sanitized_submit = esc_html($_POST['quiz_action']); switch ($sanitized_submit) { case 'lesson-complete': Sensei_Utils::sensei_start_lesson($post->ID, $current_user->ID, $complete = true); break; case 'lesson-reset': Sensei_Utils::sensei_remove_user_from_lesson($post->ID, $current_user->ID); $this->messages = '<div class="sensei-message note">' . __('Lesson Reset Successfully.', 'woothemes-sensei') . '</div>'; break; default: // Nothing break; } // End Switch Statement } // End If Statement }
/** * Remove a user from a course, deleting all activities across all lessons * * @param int $course_id * @param int $user_id * @return boolean */ public static function sensei_remove_user_from_course($course_id = 0, $user_id = 0) { if (!$course_id) { return false; } if (intval($user_id) == 0) { $user_id = get_current_user_id(); } $lesson_ids = Sensei()->course->course_lessons($course_id, 'any', 'ids'); foreach ($lesson_ids as $lesson_id) { Sensei_Utils::sensei_remove_user_from_lesson($lesson_id, $user_id, true); } // Delete course status $args = array('post_id' => $course_id, 'type' => 'sensei_course_status', 'user_id' => $user_id); Sensei_Utils::sensei_delete_activities($args); do_action('sensei_user_course_reset', $user_id, $course_id); return true; }
public function remove_user_from_post() { // Parse POST data $data = sanitize_text_field($_POST['data']); $action_data = array(); parse_str($data, $action_data); // Security checks // ensure the current user may remove users from post // only teacher or admin can remove users // check the nonce, valid post $nonce = ''; if (isset($_POST['remove_user_from_post_nonce'])) { $nonce = esc_html($_POST['remove_user_from_post_nonce']); } $post = get_post(intval($action_data['post_id'])); // validate the user $may_remove_user = false; if (current_user_can('manage_sensei') || $post->post_author == get_current_user_id()) { $may_remove_user = true; } if (!wp_verify_nonce($nonce, 'remove_user_from_post_nonce') || !is_a($post, 'WP_Post') || !$may_remove_user) { die(''); } if ($action_data['user_id'] && $action_data['post_id'] && $action_data['post_type']) { $user_id = intval($action_data['user_id']); $post_id = intval($action_data['post_id']); $post_type = sanitize_text_field($action_data['post_type']); $user = get_userdata($user_id); switch ($post_type) { case 'course': $removed = Sensei_Utils::sensei_remove_user_from_course($post_id, $user_id); break; case 'lesson': $removed = Sensei_Utils::sensei_remove_user_from_lesson($post_id, $user_id); break; } if ($removed) { die('removed'); } } die(''); }