PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.9
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.9
4.4.9 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 All 140 releases
← All changes | inc/TemplateHooks/Profile/ProfileCoursesTemplate.php +134 -134 4.3.8 → 4.4.9 View file →
@@ -1,134 +1,134 @@
1 -<?php
2 -/**
3 - * Class ProfileCoursesTemplate.
4 - *
5 - * @since 4.3.0
6 - * @version 1.0.0
7 - */
8 -
9 -namespace LearnPress\TemplateHooks\Profile;
10 -
11 -use LearnPress\CourseBuilder\CourseBuilder;
12 -use LearnPress\Helpers\Singleton;
13 -use LearnPress\Helpers\Template;
14 -use LP_Profile;
15 -
16 -class ProfileCoursesTemplate {
17 - use Singleton;
18 -
19 - public function init() {
20 - add_action( 'learn-press/profile/layout/courses', [ $this, 'layout' ] );
21 - }
22 -
23 - /**
24 - * @param array $args
25 - */
26 - public function layout( array $args = [] ) {
27 - $courses_created_tab = $args['courses_created_tab'] ?? [];
28 - $args_query_user_courses_created = $args['args_query_user_courses_created'] ?? [];
29 - $args_query_user_courses_statistic = $args['args_query_user_courses_statistic'] ?? [];
30 -
31 - // Check permission to view courses tab.
32 - $profile = LP_Profile::instance();
33 - $user_can_view = $profile->current_user_can( 'view-tab-courses' );
34 - if ( ! $user_can_view ) {
35 - return;
36 - }
37 -
38 - ob_start();
39 - lp_skeleton_animation_html( 4, 'random', 'height: 30px;border-radius:4px;' );
40 - $html_skeleton = ob_get_clean();
41 -
42 - $html_li_tabs = '';
43 - $html_filter_contents = '';
44 - foreach ( $courses_created_tab as $key => $created ) {
45 - $html_li_tabs .= sprintf(
46 - '<li><a class="%s" data-tab="%s">%s</a></li>',
47 - esc_attr( $key === '' ? 'active' : '' ),
48 - esc_attr( $key === '' ? 'all' : $key ),
49 - esc_html( $created )
50 - );
51 -
52 - $html_filter_contents .= sprintf(
53 - '<div class="learn-press-course-tab__filter__content" data-tab="%s" style="%s">%s</div>',
54 - esc_attr( $key === '' ? 'all' : $key ),
55 - esc_attr( $key !== '' ? 'display: none' : '' ),
56 - $html_skeleton
57 - );
58 - }
59 -
60 - $show_course_builder_link = $profile->is_current_user() && CourseBuilder::can_view_course_builder();
61 - $tabs_classes = [ 'learn-press-tabs' ];
62 - $course_builder_link = '';
63 -
64 - if ( $show_course_builder_link ) {
65 - $tabs_classes[] = 'learn-press-tabs--with-course-builder';
66 - $course_builder_link = sprintf(
67 - '<a class="learn-press-course-builder-link" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
68 - esc_url( CourseBuilder::get_link_course_builder() ),
69 - esc_html__( 'Course Builder', 'learnpress' )
70 - );
71 - }
72 -
73 - $section_tabs = [
74 - 'wrap' => sprintf( '<div class="%s">', esc_attr( implode( ' ', $tabs_classes ) ) ),
75 - 'ul' => '<ul class="learn-press-filters">',
76 - 'content' => $html_li_tabs,
77 - 'ul-end' => '</ul>',
78 - 'course-builder' => $course_builder_link,
79 - 'wrap-end' => '</div>',
80 - ];
81 -
82 - $section_contents = [
83 - 'wrap' => '<div class="learn-press-profile-course__progress">',
84 - 'content' => $html_filter_contents,
85 - 'input' => sprintf(
86 - '<input class="lp_profile_tab_input_param"
87 - type="hidden" name="args_query_user_courses_created"
88 - value="%s">',
89 - sanitize_text_field( htmlentities( wp_json_encode( $args_query_user_courses_created ) ) )
90 - ),
91 - 'wrap-end' => '</div>',
92 - ];
93 -
94 - $section_courses_statistic = apply_filters(
95 - 'learn-press/profile/layout/courses/sections/statistic',
96 - [
97 - 'wrap' => '<div class="learn-press-profile-course__statistic">',
98 - 'skeleton' => $html_skeleton,
99 - 'input' => sprintf(
100 - '<input type="hidden" name="args_query_user_courses_statistic" value="%s">',
101 - sanitize_text_field( htmlentities( wp_json_encode( $args_query_user_courses_statistic ) ) )
102 - ),
103 - 'wrap-end' => '</div>',
104 - ],
105 - $args
106 - );
107 -
108 - $section_courses_list = apply_filters(
109 - 'learn-press/profile/layout/courses/sections/course-list',
110 - [
111 - 'wrap' => '<div class="learn-press-profile-course__tab">',
112 - 'filter' => '<div class="learn-press-course-tab-created learn-press-course-tab-filters" data-tab="created">',
113 - 'tabs' => Template::combine_components( $section_tabs ),
114 - 'progress' => Template::combine_components( $section_contents ),
115 - 'filter-end' => '</div>',
116 - 'wrap-end' => '</div>',
117 - ],
118 - $args
119 - );
120 -
121 - $section = apply_filters(
122 - 'learn-press/profile/layout/courses/sections',
123 - [
124 - 'wrap' => '<div class="learn-press-profile-course__tab">',
125 - 'statistic' => Template::combine_components( $section_courses_statistic ),
126 - 'course-list' => Template::combine_components( $section_courses_list ),
127 - 'wrap-end' => '</div>',
128 - ],
129 - $args
130 - );
131 -
132 - echo Template::combine_components( $section );
133 - }
134 -}
1 +<?php
2 +/**
3 + * Class ProfileCoursesTemplate.
4 + *
5 + * @since 4.3.0
6 + * @version 1.0.0
7 + */
8 +
9 +namespace LearnPress\TemplateHooks\Profile;
10 +
11 +use LearnPress\CourseBuilder\CourseBuilder;
12 +use LearnPress\Helpers\Singleton;
13 +use LearnPress\Helpers\Template;
14 +use LP_Profile;
15 +
16 +class ProfileCoursesTemplate {
17 + use Singleton;
18 +
19 + public function init() {
20 + add_action( 'learn-press/profile/layout/courses', [ $this, 'layout' ] );
21 + }
22 +
23 + /**
24 + * @param array $args
25 + */
26 + public function layout( array $args = [] ) {
27 + $courses_created_tab = $args['courses_created_tab'] ?? [];
28 + $args_query_user_courses_created = $args['args_query_user_courses_created'] ?? [];
29 + $args_query_user_courses_statistic = $args['args_query_user_courses_statistic'] ?? [];
30 +
31 + // Check permission to view courses tab.
32 + $profile = LP_Profile::instance();
33 + $user_can_view = $profile->current_user_can( 'view-tab-courses' );
34 + if ( ! $user_can_view ) {
35 + return;
36 + }
37 +
38 + ob_start();
39 + lp_skeleton_animation_html( 4, 'random', 'height: 30px;border-radius:4px;' );
40 + $html_skeleton = ob_get_clean();
41 +
42 + $html_li_tabs = '';
43 + $html_filter_contents = '';
44 + foreach ( $courses_created_tab as $key => $created ) {
45 + $html_li_tabs .= sprintf(
46 + '<li><a class="%s" data-tab="%s">%s</a></li>',
47 + esc_attr( $key === '' ? 'active' : '' ),
48 + esc_attr( $key === '' ? 'all' : $key ),
49 + esc_html( $created )
50 + );
51 +
52 + $html_filter_contents .= sprintf(
53 + '<div class="learn-press-course-tab__filter__content" data-tab="%s" style="%s">%s</div>',
54 + esc_attr( $key === '' ? 'all' : $key ),
55 + esc_attr( $key !== '' ? 'display: none' : '' ),
56 + $html_skeleton
57 + );
58 + }
59 +
60 + $show_course_builder_link = $profile->is_current_user() && CourseBuilder::can_view_course_builder();
61 + $tabs_classes = [ 'learn-press-tabs' ];
62 + $course_builder_link = '';
63 +
64 + if ( $show_course_builder_link ) {
65 + $tabs_classes[] = 'learn-press-tabs--with-course-builder';
66 + $course_builder_link = sprintf(
67 + '<a class="learn-press-course-builder-link" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
68 + esc_url( CourseBuilder::get_link_course_builder() ),
69 + esc_html__( 'Course Builder', 'learnpress' )
70 + );
71 + }
72 +
73 + $section_tabs = [
74 + 'wrap' => sprintf( '<div class="%s">', esc_attr( implode( ' ', $tabs_classes ) ) ),
75 + 'ul' => '<ul class="learn-press-filters">',
76 + 'content' => $html_li_tabs,
77 + 'ul-end' => '</ul>',
78 + 'course-builder' => $course_builder_link,
79 + 'wrap-end' => '</div>',
80 + ];
81 +
82 + $section_contents = [
83 + 'wrap' => '<div class="learn-press-profile-course__progress">',
84 + 'content' => $html_filter_contents,
85 + 'input' => sprintf(
86 + '<input class="lp_profile_tab_input_param"
87 + type="hidden" name="args_query_user_courses_created"
88 + value="%s">',
89 + sanitize_text_field( htmlentities( wp_json_encode( $args_query_user_courses_created ) ) )
90 + ),
91 + 'wrap-end' => '</div>',
92 + ];
93 +
94 + $section_courses_statistic = apply_filters(
95 + 'learn-press/profile/layout/courses/sections/statistic',
96 + [
97 + 'wrap' => '<div class="learn-press-profile-course__statistic">',
98 + 'skeleton' => $html_skeleton,
99 + 'input' => sprintf(
100 + '<input type="hidden" name="args_query_user_courses_statistic" value="%s">',
101 + sanitize_text_field( htmlentities( wp_json_encode( $args_query_user_courses_statistic ) ) )
102 + ),
103 + 'wrap-end' => '</div>',
104 + ],
105 + $args
106 + );
107 +
108 + $section_courses_list = apply_filters(
109 + 'learn-press/profile/layout/courses/sections/course-list',
110 + [
111 + 'wrap' => '<div class="learn-press-profile-course__tab">',
112 + 'filter' => '<div class="learn-press-course-tab-created learn-press-course-tab-filters" data-tab="created">',
113 + 'tabs' => Template::combine_components( $section_tabs ),
114 + 'progress' => Template::combine_components( $section_contents ),
115 + 'filter-end' => '</div>',
116 + 'wrap-end' => '</div>',
117 + ],
118 + $args
119 + );
120 +
121 + $section = apply_filters(
122 + 'learn-press/profile/layout/courses/sections',
123 + [
124 + 'wrap' => '<div class="learn-press-profile-course__tab">',
125 + 'statistic' => Template::combine_components( $section_courses_statistic ),
126 + 'course-list' => Template::combine_components( $section_courses_list ),
127 + 'wrap-end' => '</div>',
128 + ],
129 + $args
130 + );
131 +
132 + echo Template::combine_components( $section );
133 + }
134 +}