PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.8
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
← All changes | inc/Shortcodes/Courses/ListCoursesShortcode.php +93 -93 4.3.94.4.8 View file →
@@ -1,93 +1,93 @@
1 -<?php
2 -
3 -namespace LearnPress\Shortcodes\Courses;
4 -
5 -use LearnPress\Databases\DataBase;
6 -use LearnPress\Filters\Course\CourseJsonFilter;
7 -use LearnPress\Helpers\Singleton;
8 -use LearnPress\Helpers\Template;
9 -use LearnPress\Models\CourseModel;
10 -use LearnPress\Models\Courses;
11 -use LearnPress\Shortcodes\AbstractShortcode;
12 -use LearnPress\TemplateHooks\Course\ListCoursesTemplate;
13 -use LP_Debug;
14 -use LP_Helper;
15 -use Throwable;
16 -
17 -/**
18 - * Shortcode display list courses.
19 - *
20 - * @since 4.3.2.3
21 - * @version 1.0.1
22 - */
23 -class ListCoursesShortcode extends AbstractShortcode {
24 - use singleton;
25 -
26 - protected $shortcode_name = 'courses';
27 -
28 - /**
29 - * Show single instructor
30 - *
31 - * @param $attrs [ 'limit', 'c_status', 'order_by', 'order', '' ]
32 - *
33 - * @return string
34 - */
35 - public function render( $attrs ): string {
36 - $content = '';
37 - wp_enqueue_style( 'learnpress' );
38 - wp_enqueue_script( 'lp-courses-v2' );
39 -
40 - try {
41 - if ( empty( $attrs ) ) {
42 - $attrs = [];
43 - }
44 -
45 - $attrs['c_status'] = LP_Helper::sanitize_params_submitted( $attrs['c_status'] ?? 'publish' );
46 - $filter = new CourseJsonFilter();
47 - Courses::handle_params_for_query_list_courses( $filter, $attrs );
48 - $filter->only_fields = [ CourseJsonFilter::COL_ID ];
49 -
50 - $total_rows = 0;
51 - $courses = Courses::get_list_courses( $filter, $total_rows );
52 - $total_pages = DataBase::get_total_pages( $filter->limit, $total_rows );
53 - $attrs['total_pages'] = $total_pages;
54 - $attrs['total_rows'] = $total_rows;
55 - $attrs['courses_per_page'] = $filter->limit;
56 - $skin = LP_Helper::sanitize_params_submitted( $attrs['skin'] ?? 'list' );
57 - $paged = $attrs['paged'] ?? 1;
58 - $attrs['paged'] = $paged;
59 - $listCoursesTemplate = self::instance();
60 -
61 - // HTML section courses.
62 - $html_courses = '';
63 - if ( empty( $courses ) ) {
64 - $html_courses = Template::print_message( __( 'No courses found', 'learnpress' ), 'info', false );
65 - } else {
66 - foreach ( $courses as $courseObj ) {
67 - $course = CourseModel::find( $courseObj->ID, true );
68 - $html_courses .= ListCoursesTemplate::render_course( $course, $attrs );
69 - }
70 - }
71 -
72 - $section_courses = apply_filters(
73 - 'learn-press/layout/list-courses/shortcode/section',
74 - [
75 - 'wrap' => sprintf(
76 - '<ul class="learn-press-courses lp-list-courses-no-css %1$s learn-press-courses-shortcode" data-layout="%1$s">',
77 - esc_attr( $skin )
78 - ),
79 - 'courses' => wp_kses_post( $html_courses ),
80 - 'wrap_end' => '</ul>',
81 - ],
82 - $courses,
83 - $attrs
84 - );
85 -
86 - $content = Template::combine_components( $section_courses );
87 - } catch ( Throwable $e ) {
88 - LP_Debug::error_log( $e );
89 - }
90 -
91 - return $content;
92 - }
93 -}
1 +<?php
2 +
3 +namespace LearnPress\Shortcodes\Courses;
4 +
5 +use LearnPress\Databases\DataBase;
6 +use LearnPress\Filters\Course\CourseJsonFilter;
7 +use LearnPress\Helpers\Singleton;
8 +use LearnPress\Helpers\Template;
9 +use LearnPress\Models\CourseModel;
10 +use LearnPress\Models\Courses;
11 +use LearnPress\Shortcodes\AbstractShortcode;
12 +use LearnPress\TemplateHooks\Course\ListCoursesTemplate;
13 +use LP_Debug;
14 +use LP_Helper;
15 +use Throwable;
16 +
17 +/**
18 + * Shortcode display list courses.
19 + *
20 + * @since 4.3.2.3
21 + * @version 1.0.1
22 + */
23 +class ListCoursesShortcode extends AbstractShortcode {
24 + use singleton;
25 +
26 + protected $shortcode_name = 'courses';
27 +
28 + /**
29 + * Show single instructor
30 + *
31 + * @param $attrs [ 'limit', 'c_status', 'order_by', 'order', '' ]
32 + *
33 + * @return string
34 + */
35 + public function render( $attrs ): string {
36 + $content = '';
37 + wp_enqueue_style( 'learnpress' );
38 + wp_enqueue_script( 'lp-courses-v2' );
39 +
40 + try {
41 + if ( empty( $attrs ) ) {
42 + $attrs = [];
43 + }
44 +
45 + $attrs['c_status'] = LP_Helper::sanitize_params_submitted( $attrs['c_status'] ?? 'publish' );
46 + $filter = new CourseJsonFilter();
47 + Courses::handle_params_for_query_list_courses( $filter, $attrs );
48 + $filter->only_fields = [ CourseJsonFilter::COL_ID ];
49 +
50 + $total_rows = 0;
51 + $courses = Courses::get_list_courses( $filter, $total_rows );
52 + $total_pages = DataBase::get_total_pages( $filter->limit, $total_rows );
53 + $attrs['total_pages'] = $total_pages;
54 + $attrs['total_rows'] = $total_rows;
55 + $attrs['courses_per_page'] = $filter->limit;
56 + $skin = LP_Helper::sanitize_params_submitted( $attrs['skin'] ?? 'list' );
57 + $paged = $attrs['paged'] ?? 1;
58 + $attrs['paged'] = $paged;
59 + $listCoursesTemplate = self::instance();
60 +
61 + // HTML section courses.
62 + $html_courses = '';
63 + if ( empty( $courses ) ) {
64 + $html_courses = Template::print_message( __( 'No courses found', 'learnpress' ), 'info', false );
65 + } else {
66 + foreach ( $courses as $courseObj ) {
67 + $course = CourseModel::find( $courseObj->ID, true );
68 + $html_courses .= ListCoursesTemplate::render_course( $course, $attrs );
69 + }
70 + }
71 +
72 + $section_courses = apply_filters(
73 + 'learn-press/layout/list-courses/shortcode/section',
74 + [
75 + 'wrap' => sprintf(
76 + '<ul class="learn-press-courses lp-list-courses-no-css %1$s learn-press-courses-shortcode" data-layout="%1$s">',
77 + esc_attr( $skin )
78 + ),
79 + 'courses' => wp_kses_post( $html_courses ),
80 + 'wrap_end' => '</ul>',
81 + ],
82 + $courses,
83 + $attrs
84 + );
85 +
86 + $content = Template::combine_components( $section_courses );
87 + } catch ( Throwable $e ) {
88 + LP_Debug::error_log( $e );
89 + }
90 +
91 + return $content;
92 + }
93 +}