/** * 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 ''; }
/** * 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; }
/** * 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; }