LLMS_Post_Handler
Contents
Source Source
File: includes/class.llms.post.handler.php
class LLMS_Post_Handler { /** * Create Post * * @param string $type [optional: a post type] * @param string $title [optional: a title for the post] * @return int [id of section] */ public static function create( $type = 'post', $title = '', $excerpt = '' ) { if ( empty( $title ) ) { $title = 'Section 1'; } // Create section post. $post_data = apply_filters( 'lifterlms_new_post', array( 'post_type' => $type, 'post_title' => $title, 'post_status' => 'publish', 'post_author' => get_current_user_id(), 'post_excerpt' => $excerpt, ) ); $post_id = wp_insert_post( $post_data, true ); // Check for error in update. if ( is_wp_error( $post_id ) ) { // For now just log the error and set $post_id to 0 (false). llms_log( $post_id->get_error_message() ); $post_id = 0; } return $post_id; } public static function update_title( $post_id, $title ) { $post_data = array( 'ID' => $post_id, 'post_title' => $title, ); // Update the post into the database. $updated_post_id = wp_update_post( $post_data ); if ( $updated_post_id ) { return array( 'id' => $updated_post_id, 'title' => $title, ); } } public static function update_excerpt( $post_id, $excerpt ) { $post_data = array( 'ID' => $post_id, 'post_excerpt' => $excerpt, ); // Update the post into the database. $updated_post_id = wp_update_post( $post_data ); if ( $updated_post_id ) { return array( 'id' => $updated_post_id, 'post_excerpt' => $excerpt, ); } } /** * Creates a new Section * * @since Unknown Introduced. * @deprecated 5.7.0 There is not a replacement. * * @param int $course_id The parent course id. * @param string $title An optional title for the section. * @return int Post id of the section. */ public static function create_section( $course_id, $title = '' ) { llms_deprecated_function( __METHOD__, '5.7.0' ); // No course id? no new section!. if ( ! isset( $course_id ) ) { return; } // Set the section_order variable. // Get the count of sections in the course and add 1. $course = new LLMS_Course( $course_id ); $sections = $course->get_sections( 'posts' ); $section_order = count( $sections ) + 1; $title = isset( $title ) ? $title : 'New Section'; $post_id = self::create( 'section', $title ); // If post created set parent course and order to order determined above. if ( $post_id ) { update_post_meta( $post_id, '_llms_order', $section_order ); $section = new LLMS_Section( $post_id ); $updated_parent_course = $section->set_parent_course( $course_id ); } return $post_id; } /** * Create lesson * * @since Unknown * @deprecated 4.4.3 * * @param int $course_id WP_Post ID of the course. * @param int $section_id WP_Post ID of the lesson's parent section. * @param string $title Optional lesson title. * @param string $excerpt Option excerpt. * @return int WP_Post ID of the created lesson. */ public static function create_lesson( $course_id, $section_id, $title = '', $excerpt = '' ) { // No course id or section id? no new lesson!. if ( ! isset( $course_id ) || ! isset( $course_id ) ) { return; } // Set the lesson_order variable. // Get the count of lessons in the section. $section = new LLMS_Section( $section_id ); $lesson_order = $section->get_next_available_lesson_order(); $title = isset( $title ) ? $title : 'New Lesson'; $post_id = self::create( 'lesson', $title, $excerpt ); // If post created set parent section, parent course and order determined above. if ( $post_id ) { update_post_meta( $post_id, '_llms_order', $lesson_order ); $lesson = new LLMS_Lesson( $post_id ); $updated_parent_section = $lesson->set_parent_section( $section_id ); $updated_parent_course = $lesson->set_parent_course( $course_id ); } return $post_id; } public static function get_posts( $type = 'post' ) { $args = array( 'posts_per_page' => 1000, 'post_type' => $type, 'nopaging' => true, 'post_status' => 'publish', 'orderby' => 'post_title', 'order' => 'ASC', 'suppress_filters' => true, ); $postslist = get_posts( $args ); if ( ! empty( $postslist ) ) { foreach ( $postslist as $key => $value ) { $value->edit_url = get_edit_post_link( $value->ID, false ); } } return $postslist; } public static function get_lesson_options_for_select_list() { $lessons = self::get_posts( 'lesson' ); $options = array(); if ( ! empty( $lessons ) ) { foreach ( $lessons as $key => $value ) { // Get parent course if assigned. $parent_course = get_post_meta( $value->ID, '_llms_parent_course', true ); if ( $parent_course ) { $title = $value->post_title . ' ( ' . get_the_title( $parent_course ) . ' )'; } else { $title = $value->post_title . ' ( ' . __( 'unassigned', 'lifterlms' ) . ' )'; } $options[ $value->ID ] = $title; } } return $options; } public static function get_prerequisite( $post_id ) { $post_type = get_post_type( $post_id ); if ( 'course' === $post_type ) { $course = new LLMS_Course( $post_id ); return $course->get_prerequisite(); } elseif ( 'lesson' === $post_type ) { $lesson = new LLMS_Lesson( $post_id ); return $lesson->get_prerequisite(); } } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- create — Create Post
- create_lesson — Create lesson — deprecated
- create_section — Creates a new Section — deprecated
- get_lesson_options_for_select_list
- get_posts
- get_prerequisite
- update_excerpt
- update_title
Changelog Changelog
Version | Description |
---|---|
5.7.0 | Deprecated the LLMS_Post_Handler::create_section() method with no replacement. |
4.4.3 | Deprecated the LLMS_Post_Handler::create_lesson() method with no replacement. |
1.0.0 | Introduced. |