function user_has_passed_course($user_passed, $course_id, $user_id)
 {
     if ($this->is_public_quiz($course_id)) {
         if (get_post_meta($course_id, '_lpr_course_final', true) == 'yes' && ($quiz = lpr_get_final_quiz($course_id))) {
             $passed = learn_press_quiz_evaluation($quiz, $user_id);
             $passing_condition = learn_press_get_course_passing_condition($course_id);
         } else {
             $passed = lpr_course_evaluation($course_id);
             $passing_condition = 0;
         }
         $user_passed = $passing_condition ? $passed >= $passing_condition ? $passed : 0 : $passed == 100;
     }
     return $user_passed;
 }
function learn_press_user_finished_course_send_email($course_id = null, $user_id = null)
{
    $course_id = learn_press_get_course_id($course_id);
    if (!$user_id) {
        $user_id = get_current_user_id();
    }
    $user = get_user_by('id', $user_id);
    if (empty($user->ID) || !$course_id) {
        return false;
    }
    $mail_to = $user->user_email;
    $assessment = get_post_meta($course_id, '_lpr_course_final', true);
    if ('yes' == $assessment) {
        $quiz_id = lpr_get_final_quiz($course_id);
        $quiz_result = learn_press_get_quiz_result($user_id, $quiz_id);
        $course_result = $quiz_result['mark_percent'] * 100;
    } else {
        $course_result = 100;
    }
    $args = apply_filters('learn_press_vars_passed_course', array('user_name' => !empty($user->display_name) ? $user->display_name : $user->user_nicename, 'course_name' => get_the_title($course_id), 'course_link' => get_permalink($course_id), 'course_result' => sprintf(__('%d%% of total', 'learn_press'), intval($course_result))));
    learn_press_send_mail($mail_to, 'passed_course', $args);
}
function learn_press_is_final_quiz($quiz_id)
{
    $course_id = learn_press_get_course_by_quiz($quiz_id);
    if (lpr_get_final_quiz($course_id) == $quiz_id) {
        return $course_id;
    }
    return false;
}
function learn_press_get_course_result($course_id = null, $user_id = null)
{
    $course_id = learn_press_get_course_id($course_id);
    if (!$user_id) {
        $user_id = get_current_user_id();
    }
    if (!$course_id || !$user_id) {
        return 0;
    }
    if (get_post_meta($course_id, '_lpr_course_final', true) == 'yes' && ($quiz = lpr_get_final_quiz($course_id))) {
        $passed = learn_press_quiz_evaluation($quiz, $user_id);
        //$passing_condition = learn_press_get_course_passing_condition( $course_id );
    } else {
        $passed = lpr_course_evaluation($course_id);
        //$passing_condition = 0;
    }
    return $passed;
}
 /**
  * Finish course
  */
 public static function finish_course()
 {
     $user_id = get_current_user_id();
     $course_id = !empty($_POST['course_id']) ? $_POST['course_id'] : 0;
     if (!$user_id || !$course_id) {
         wp_die(__('Access denied!', 'learn_press'));
     }
     $finish = false;
     $json = array('finish' => true);
     $assessment = get_post_meta($course_id, '_lpr_course_final', true);
     $pass = floatval(get_post_meta($course_id, '_lpr_course_condition', true));
     if ($assessment == 'yes') {
         $final_quiz = lpr_get_final_quiz($course_id);
         $final_result = learn_press_get_quiz_result($user_id, $final_quiz);
         // lpr_get_quiz_result( $final_quiz );
         if (!empty($final_result) && !empty($final_result['mark_percent']) && $final_result['mark_percent'] * 100 >= $pass) {
             $finish = true;
         }
     } else {
         $progress = lpr_course_evaluation($course_id);
         if ($progress >= $pass) {
             $finish = true;
         }
     }
     if ($finish) {
         learn_press_finish_course($course_id, $user_id);
         $json['message'] = __('Congratulation ! You have finished this course', 'learn_press');
     } else {
         $json['finish'] = false;
         $json['message'] = __('Sorry! You can not finish this course now', 'learn_press');
     }
     wp_send_json($json);
     die;
 }
 /**
  * Display the message about status of the course after user finished
  */
 function learn_press_course_finished_message()
 {
     if (learn_press_user_has_finished_course()) {
         $quiz_id = lpr_get_final_quiz(get_the_ID());
         learn_press_get_template('course/course-result.php', array('quiz_id' => $quiz_id));
     }
 }