PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.3.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.3.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
learnpress / inc / TemplateHooks / UserItem / UserItemBaseTemplate.php

UserItemBaseTemplate.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.3.8, at inc/TemplateHooks/UserItem/UserItemBaseTemplate.php

186 lines 4.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Template hooks User Item Base.
4 *
5 * @since 4.2.3.5
6 * @version 1.0.1
7 */
8
9 namespace LearnPress\TemplateHooks\UserItem;
10
11 use LearnPress\Models\UserItems\UserItemModel;
12 use LP_Datetime;
13 use LP_User_Item;
14 use Throwable;
15
16 class UserItemBaseTemplate {
17 /**
18 * Get html start time of user item.
19 *
20 * @param UserItemModel|LP_User_Item $user_item
21 * @param bool $has_time
22 *
23 * @return string
24 * @since 4.2.3.5
25 * @version 1.0.1
26 */
27 public function html_start_date_time( $user_item, bool $has_time = true ): string {
28 $html = '';
29
30 try {
31 if ( $user_item instanceof LP_User_Item ) {
32 $userItemModel = new UserItemModel( $user_item->get_data() );
33 } elseif ( $user_item instanceof UserItemModel ) {
34 $userItemModel = $user_item;
35 } else {
36 return $html;
37 }
38
39 $start_time_from_db = $userItemModel->get_start_time();
40 if ( empty( $start_time_from_db ) ) {
41 $start_date_str = ' - ';
42 } else {
43 $start_date = new LP_Datetime( $start_time_from_db );
44 if ( $has_time ) {
45 $start_date_str = $start_date->format( LP_Datetime::I18N_FORMAT_HAS_TIME );
46 } else {
47 $start_date_str = $start_date->format( LP_Datetime::I18N_FORMAT );
48 }
49 }
50
51 $html = sprintf( '<span class="lp-user-item start-date-time">%s</span>', $start_date_str );
52 } catch ( Throwable $e ) {
53 error_log( __METHOD__ . ': ' . $e->getMessage() );
54 }
55
56 return $html;
57 }
58
59 /**
60 * Get html end time of user item.
61 *
62 * @param UserItemModel|LP_User_Item $user_item
63 * @param bool $has_time
64 *
65 * @return string
66 * @since 4.2.3.5
67 * @version 1.0.1
68 */
69 public function html_end_date_time( $user_item, bool $has_time = true ): string {
70 $html = '';
71
72 try {
73 if ( $user_item instanceof LP_User_Item ) {
74 $userItemModel = new UserItemModel( $user_item->get_data() );
75 } elseif ( $user_item instanceof UserItemModel ) {
76 $userItemModel = $user_item;
77 } else {
78 return $html;
79 }
80
81 $end_time_from_db = $userItemModel->get_end_time();
82 if ( empty( $end_time_from_db ) ) {
83 $end_date_str = ' - ';
84 } else {
85 $end_date = new LP_Datetime( $end_time_from_db );
86 if ( $has_time ) {
87 $end_date_str = $end_date->format( LP_Datetime::I18N_FORMAT_HAS_TIME );
88 } else {
89 $end_date_str = $end_date->format( LP_Datetime::I18N_FORMAT );
90 }
91 }
92
93 $html = sprintf( '<span class="lp-user-item end-date-time">%s</span>', $end_date_str );
94 } catch ( Throwable $e ) {
95 error_log( __METHOD__ . ': ' . $e->getMessage() );
96 }
97
98 return $html;
99 }
100
101 /**
102 * Get html expire time of user item.
103 *
104 * @param UserItemModel|LP_User_Item $user_item
105 * @param bool $has_time
106 *
107 * @return string
108 * @since 4.2.3.5
109 * @version 1.0.1
110 */
111 public function html_expire_date_time( $user_item, bool $has_time = true ): string {
112 $html = '';
113
114 try {
115 if ( $user_item instanceof LP_User_Item ) {
116 $userItemModel = new UserItemModel( $user_item->get_data() );
117 } elseif ( $user_item instanceof UserItemModel ) {
118 $userItemModel = $user_item;
119 } else {
120 return $html;
121 }
122
123 $expire_date = $userItemModel->get_expiration_time();
124 if ( empty( $expire_date ) ) {
125 $expire_date_str = __( 'Never', 'learnpress' );
126 } else {
127 if ( $has_time ) {
128 $expire_date_str = $expire_date->format( LP_Datetime::I18N_FORMAT_HAS_TIME );
129 } else {
130 $expire_date_str = $expire_date->format( LP_Datetime::I18N_FORMAT );
131 }
132 }
133
134 $html = sprintf( '<span class="lp-user-item expire-date-time">%s</span>', $expire_date_str );
135 // Hook old
136 if ( has_filter( 'learn-press/user-item/html-expire-date-time' ) ) {
137 $html = apply_filters( 'learn-press/user-item/html-expire-date-time', $html, $user_item, $has_time );
138 }
139
140 $html = apply_filters( 'learn-press/user-item-model/html-expire-date-time', $html, $userItemModel, $has_time );
141 } catch ( Throwable $e ) {
142 error_log( __METHOD__ . ': ' . $e->getMessage() );
143 }
144
145 return $html;
146 }
147
148 /**
149 * Get html graduation of user item.
150 * @param UserItemModel $userItemModel
151 *
152 * @return void
153 * @since 4.2.7.6
154 * @version 1.0.0
155 */
156 public function html_graduation( UserItemModel $userItemModel ): string {
157 $html = '';
158
159 $graduation = $userItemModel->get_graduation();
160 if ( empty( $graduation ) ) {
161 return $html;
162 }
163
164 $label = '';
165 switch ( $graduation ) {
166 case UserItemModel::GRADUATION_PASSED:
167 $label = __( 'Passed', 'learnpress' );
168 break;
169 case UserItemModel::GRADUATION_FAILED:
170 $label = __( 'Failed', 'learnpress' );
171 break;
172 default:
173 break;
174 }
175
176 $html = sprintf(
177 '<div class="lp-user-item graduation %s">%s%s</div>',
178 $graduation,
179 sprintf( '<span class="lp-icon lp-icon-%s"></span>', $graduation ),
180 $label
181 );
182
183 return apply_filters( 'learn-press/user-item-model/html-graduation', $html, $userItemModel );
184 }
185 }
186