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
 }
Esempio n. 2
0
 /**
  * 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('');
 }