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
learnpress / inc / admin / views / meta-boxes / course / class-lp-meta-box-course-offline.php

class-lp-meta-box-course-offline.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.9, at inc/admin/views/meta-boxes/course/class-lp-meta-box-course-offline.php

121 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * LP_Meta_Box_Course_Offline
4 *
5 * Hide some tabs, fields no need for mode offline.
6 */
7
8 use LearnPress\Helpers\Singleton;
9 use LearnPress\Models\CourseModel;
10 use LearnPress\Models\CoursePostModel;
11
12 class LP_Meta_Box_Course_Offline {
13 use Singleton;
14
15 public function init() {
16 add_filter( 'learnpress/course/metabox/tabs', [ $this, 'hide_tabs_when_enable_offline' ], 9999, 2 );
17 add_filter( 'lp/course/meta-box/fields/general', [
18 $this,
19 'hide_fields_general_when_enable_offline'
20 ], 9999, 2 );
21 add_filter( 'lp/course/meta-box/fields/price', [
22 $this,
23 'hide_fields_price_when_enable_offline'
24 ], 9999, 2 );
25 }
26
27 /**
28 * Hide tabs when enable offline course
29 *
30 * @param array $tabs
31 * @param int $post_id
32 *
33 * @return array
34 */
35 public function hide_tabs_when_enable_offline( $tabs, $post_id ) {
36 $course = CourseModel::find( $post_id, true );
37 $is_enable_offline_course = false;
38 if ( $course instanceof CourseModel ) {
39 $is_enable_offline_course = $course->is_offline();
40 }
41
42 if ( ! $is_enable_offline_course ) {
43 return $tabs;
44 }
45
46 $tabs_hide = [
47 'assessment',
48 'certificates',
49 'content_drip',
50 ];
51
52 foreach ( $tabs_hide as $tab_hide ) {
53 if ( ! isset( $tabs[ $tab_hide ] ) ) {
54 continue;
55 }
56 unset( $tabs[ $tab_hide ] );
57 }
58
59 return $tabs;
60 }
61
62
63 public function hide_fields_general_when_enable_offline( $fields, $post_id ) {
64 $course = CourseModel::find( $post_id, true );
65 $is_enable_offline_course = false;
66 if ( $course instanceof CourseModel ) {
67 $is_enable_offline_course = $course->is_offline();
68 }
69
70 if ( ! $is_enable_offline_course ) {
71 return $fields;
72 }
73
74 $fields_hide = [
75 CoursePostModel::META_KEY_BLOCK_EXPIRE_DURATION,
76 CoursePostModel::META_KEY_BLOCK_FINISH,
77 CoursePostModel::META_KEY_ALLOW_COURSE_REPURCHASE,
78 CoursePostModel::META_KEY_COURSE_REPURCHASE_OPTION,
79 CoursePostModel::META_KEY_RETAKE_COUNT,
80 CoursePostModel::META_KEY_HAS_FINISH,
81 CoursePostModel::META_KEY_STUDENTS,
82 ];
83
84 foreach ( $fields_hide as $field_hide ) {
85 if ( ! isset( $fields[ $field_hide ] ) ) {
86 continue;
87 }
88 unset( $fields[ $field_hide ] );
89 }
90
91 return $fields;
92 }
93
94 public function hide_fields_price_when_enable_offline( $fields, $post_id ) {
95 $course = CourseModel::find( $post_id, true );
96 $is_enable_offline_course = false;
97 if ( $course instanceof CourseModel ) {
98 $is_enable_offline_course = $course->is_offline();
99 }
100
101 if ( ! $is_enable_offline_course ) {
102 return $fields;
103 }
104
105 $fields_hide = [
106 '_lp_no_required_enroll',
107 ];
108
109 foreach ( $fields_hide as $field_hide ) {
110 if ( ! isset( $fields[ $field_hide ] ) ) {
111 continue;
112 }
113 unset( $fields[ $field_hide ] );
114 }
115
116 return $fields;
117 }
118 }
119
120 LP_Meta_Box_Course_Offline::instance();
121