Exemplo n.º 1
0
/**
 * Check to see if user can view a lesson or not
 *
 * @since 0.9.5
 * @param int $lesson_id
 * @param int $user_id
 * @return boolean
 */
function learn_press_user_can_view_lesson($lesson_id, $user_id = null)
{
    $return = false;
    if ($user_id = null) {
        $user_id = get_current_user_id();
    }
    $course_id = learn_press_get_course_by_lesson($lesson_id);
    $enrolled_require = get_post_meta($course_id, '_lpr_course_enrolled_require', true);
    // check enrolled require
    if (!$enrolled_require || $enrolled_require == 'no') {
        $return = true;
    } elseif (learn_press_is_lesson_preview($lesson_id)) {
        // lesson can preview
        $return = true;
    } else {
        if (learn_press_is_enrolled_course()) {
            // user has enrolled course
            $return = true;
        }
    }
    return apply_filters('learn_press_user_can_view_lesson', $return, $lesson_id, $user_id);
}
/**
 * Shortcode function to display the link of a lesson in the lesson content
 *
 * @param      $atts
 * @param null $content
 *
 * @return string
 */
function learn_press_quick_lesson_link_shortcode($atts, $content = null)
{
    if ('lpr_lesson' == get_post_type()) {
        $atts = shortcode_atts(array('id' => 0, 'text' => null, 'target' => ''), $atts);
        if ('lpr_lesson' == get_post_type($atts['id']) && ($course_id = learn_press_get_course_by_lesson($atts['id']))) {
            $link = learn_press_get_course_lesson_permalink($atts['id'], $course_id);
            $text = $atts['text'] ? $atts['text'] : get_the_title($atts['id']);
            $target = $atts['target'];
            return sprintf('<a href="%s" target="%s">%s</a>', $link, $target, $text);
        }
        return '';
    }
    return '';
}
Exemplo n.º 3
0
 /**
  * Complete lesson
  */
 public static function complete_lesson()
 {
     global $post;
     $user_id = get_current_user_id();
     $lesson_id = !empty($_POST['lesson']) ? $_POST['lesson'] : 0;
     if (!$user_id || !$lesson_id) {
         wp_die(__('Access denied!', 'learn_press'));
     }
     $response = array();
     if (learn_press_mark_lesson_complete($lesson_id, $user_id)) {
         $course_id = learn_press_get_course_by_lesson($lesson_id);
         $lessons = learn_press_get_lessons_in_course($course_id);
         $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true);
         $lesson_completed = !empty($lesson_completed[$course_id]) ? $lesson_completed[$course_id] : array();
         if ($lessons) {
             if (false !== ($pos = array_search($lesson_id, $lessons))) {
                 $loop = $pos == count($lessons) - 1 ? 0 : $pos + 1;
                 $infinite = 0;
                 $max = count($lessons);
                 while (in_array($lessons[$loop], $lesson_completed) && $lessons[$loop] != $lesson_id) {
                     $loop++;
                     if ($loop == $max) {
                         $loop = 0;
                     }
                     if ($infinite > $max) {
                         break;
                     }
                 }
                 if ($lessons[$loop] != $lesson_id) {
                     $response['url'] = learn_press_get_course_lesson_permalink($lessons[$loop], $course_id);
                 } else {
                     $response['url'] = learn_press_get_course_lesson_permalink($lesson_id, $course_id);
                 }
             }
         }
     }
     learn_press_send_json($response);
     die;
 }
Exemplo n.º 4
0
 /**
  * Complete lesson
  */
 public static function complete_lesson()
 {
     $nonce = learn_press_get_request('nonce');
     $item_id = learn_press_get_request('id');
     $post = get_post($item_id);
     if (!$post || $post && !wp_verify_nonce($nonce, sprintf('learn-press-complete-%s-%d', $post->post_type, $post->ID))) {
         throw new Exception(__('Error ', 'learn_press'));
     }
     $user = learn_press_get_current_user();
     $response = array('result' => 'error');
     if ($user->complete_lesson($item_id)) {
         ob_start();
         learn_press_display_message(__('Congratulations! You have completed this lesson.', 'learn_press'));
         $response['message'] = ob_get_clean();
         $response['result'] = 'success';
     }
     learn_press_send_json($response);
     die;
     global $post;
     $user_id = get_current_user_id();
     $lesson_id = !empty($_POST['lesson']) ? $_POST['lesson'] : 0;
     if (!$user_id || !$lesson_id) {
         wp_die(__('Access denied!', 'learn_press'));
     }
     $response = array();
     if (learn_press_mark_lesson_complete($lesson_id, $user_id)) {
         $course_id = learn_press_get_course_by_lesson($lesson_id);
         $lessons = learn_press_get_lessons_in_course($course_id);
         $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true);
         $lesson_completed = !empty($lesson_completed[$course_id]) ? $lesson_completed[$course_id] : array();
         if ($lessons) {
             if (false !== ($pos = array_search($lesson_id, $lessons))) {
                 $loop = $pos == count($lessons) - 1 ? 0 : $pos + 1;
                 $infinite = 0;
                 $max = count($lessons);
                 while (in_array($lessons[$loop], $lesson_completed) && $lessons[$loop] != $lesson_id) {
                     $loop++;
                     if ($loop == $max) {
                         $loop = 0;
                     }
                     if ($infinite > $max) {
                         break;
                     }
                 }
                 if ($lessons[$loop] != $lesson_id) {
                     $response['url'] = learn_press_get_course_lesson_permalink($lessons[$loop], $course_id);
                 } else {
                     $response['url'] = learn_press_get_course_lesson_permalink($lesson_id, $course_id);
                 }
             }
         }
     }
     learn_press_send_json($response);
     die;
 }