LLMS_REST_Lessons_Controller::prepare_links( LLMS_Lesson $lesson, WP_REST_Request $request )
Prepare links for the request.
Parameters Parameters
- $lesson
-
(LLMS_Lesson) (Required) LLMS Section.
- $request
-
(WP_REST_Request) (Required) Request object.
Return Return
(array) Links for the given object.
Source Source
File: libraries/lifterlms-rest/includes/server/class-llms-rest-lessons-controller.php
* @since 1.0.0-beta.14 Added `$request` parameter.
* @since 1.0.0-beta.23 Replaced the call to the deprecated `LLMS_Lesson::get_parent_course()` method with `LLMS_Lesson::get( 'parent_course' )`.
*
* @param LLMS_Lesson $lesson LLMS Section.
* @param WP_REST_Request $request Request object.
* @return array Links for the given object.
*/
protected function prepare_links( $lesson, $request ) {
$links = parent::prepare_links( $lesson, $request );
unset( $links['content'] );
$lesson_id = $lesson->get( 'id' );
$parent_course_id = $lesson->get( 'parent_course' );
$parent_section_id = $lesson->get_parent_section();
$lesson_links = array();
// Parent course.
if ( $parent_course_id ) {
$lesson_links['course'] = array(
'href' => rest_url( sprintf( '/%s/%s/%d', 'llms/v1', 'courses', $parent_course_id ) ),
);
}
// Parent section.
if ( $parent_section_id ) {
$lesson_links['parent'] = array(
'type' => 'section',
'href' => rest_url( sprintf( '/%s/%s/%d', 'llms/v1', 'sections', $parent_section_id ) ),
);
}
// Siblings.
$lesson_links['siblings'] = array(
'href' => add_query_arg(
'parent',
$parent_section_id,
$links['collection']['href']
),
);
// Next.
$next_lesson = $lesson->get_next_lesson();
if ( $next_lesson ) {
$lesson_links['next'] = array(
'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $next_lesson ) ),
);
}
// Previous.
$previous_lesson = $lesson->get_previous_lesson();
if ( $previous_lesson ) {
$lesson_links['previous'] = array(
'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $previous_lesson ) ),
);
}
// Prerequisite.
$prerequisite = $lesson->get_prerequisite();
if ( ! empty( $prerequisite ) ) {
$lesson_links['prerequisite'] = array(
'type' => $this->post_type,
'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $prerequisite ) ),
);
}
// Quiz.
if ( $lesson->is_quiz_enabled() ) {
$quiz = $lesson->get_quiz();
$lesson_links['quiz'] = array(
'href' => rest_url( sprintf( '/%s/%s/%d', 'llms/v1', 'quizzes', $quiz->get( 'id' ) ) ),
);
}
$links = array_merge( $links, $lesson_links );
/**
* Filters the lesson's links.
*
* @since 1.0.0-beta.7
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.7 | Fixed siblings link that was using the parent course's id instead of the parent section's id. Fixed parent link href, replacing 'section' with 'sections'. Following links added: prerequisite, quiz. Added llms_rest_lesson_links filter hook. |
| 1.0.0-beta.23 | Replaced the call to the deprecated LLMS_Lesson::get_parent_course() method with LLMS_Lesson::get( 'parent_course' ). |
| 1.0.0-beta.14 | Added $request parameter. |
| 1.0.0-beta.1 | Introduced. |