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/user/lp-user-functions.php +10 -166 4.3.74.4.8 View file →
@@ -1,8 +1,9 @@
1 1 <?php
2 2
3 3 use LearnPress\Models\UserItems\UserItemModel;
4 4 use LearnPress\Models\UserModel;
5 +use LearnPress\Services\UserService;
5 6
6 7 /**
7 8 * Common functions to process actions about user
8 9 *
@@ -130,180 +131,23 @@
130 131 }
131 132 }
132 133
133 134 /**
134 - * Add more 2 user roles teacher and student
135 + * Add roles and add capabilities for roles
135 136 */
136 137 function learn_press_add_user_roles() {
137 - $course_cap = LP_COURSE_CPT . 's';
138 - $lesson_cap = LP_LESSON_CPT . 's';
139 - $order_cap = LP_ORDER_CPT . 's';
138 + $item_types = [
139 + LP_COURSE_CPT,
140 + LP_LESSON_CPT,
141 + LP_ORDER_CPT,
142 + ];
140 143
141 - if ( ! get_role( LP_TEACHER_ROLE ) ) {
142 - add_role( LP_TEACHER_ROLE, 'LP Instructor' );
144 + foreach ( $item_types as $item_type ) {
145 + UserService::instance()->add_capabilities_for_roles( $item_type );
143 146 }
144 -
145 - $teacher = get_role( LP_TEACHER_ROLE );
146 - if ( $teacher ) {
147 - $teacher->add_cap( 'read_private_' . $course_cap );
148 - $teacher->add_cap( 'delete_published_' . $course_cap );
149 - $teacher->add_cap( 'edit_published_' . $course_cap );
150 - $teacher->add_cap( 'edit_' . $course_cap );
151 - $teacher->add_cap( 'delete_' . $course_cap );
152 - // $teacher->add_cap( 'unfiltered_html' );
153 - if ( $teacher->has_cap( 'unfiltered_html' ) ) {
154 - $teacher->remove_cap( 'unfiltered_html' );
155 - }
156 -
157 - if ( LP_Settings::get_option( 'required_review', 'yes' ) == 'yes' ) {
158 - $teacher->remove_cap( 'publish_' . $course_cap );
159 - } else {
160 - $teacher->add_cap( 'publish_' . $course_cap );
161 - }
162 -
163 - $teacher->add_cap( 'read_private_' . $lesson_cap );
164 - $teacher->add_cap( 'delete_published_' . $lesson_cap );
165 - $teacher->add_cap( 'edit_published_' . $lesson_cap );
166 - $teacher->add_cap( 'edit_' . $lesson_cap );
167 - $teacher->add_cap( 'delete_' . $lesson_cap );
168 - $teacher->add_cap( 'publish_' . $lesson_cap );
169 - $teacher->add_cap( 'upload_files' );
170 - $teacher->add_cap( 'read' );
171 - $teacher->add_cap( 'edit_posts' );
172 - }
173 -
174 - // administrator
175 - $admin = get_role( 'administrator' );
176 - if ( $admin ) {
177 - $admin->add_cap( 'lp_mcp_access' );
178 -
179 - $admin->add_cap( 'read_private_' . $course_cap );
180 - $admin->add_cap( 'delete_' . $course_cap );
181 - $admin->add_cap( 'delete_published_' . $course_cap );
182 - $admin->add_cap( 'edit_' . $course_cap );
183 - $admin->add_cap( 'edit_published_' . $course_cap );
184 - $admin->add_cap( 'publish_' . $course_cap );
185 - $admin->add_cap( 'delete_private_' . $course_cap );
186 - $admin->add_cap( 'edit_private_' . $course_cap );
187 - $admin->add_cap( 'delete_others_' . $course_cap );
188 - $admin->add_cap( 'edit_others_' . $course_cap );
189 -
190 - $admin->add_cap( 'read_private_' . $lesson_cap );
191 - $admin->add_cap( 'delete_' . $lesson_cap );
192 - $admin->add_cap( 'delete_published_' . $lesson_cap );
193 - $admin->add_cap( 'edit_' . $lesson_cap );
194 - $admin->add_cap( 'edit_published_' . $lesson_cap );
195 - $admin->add_cap( 'publish_' . $lesson_cap );
196 - $admin->add_cap( 'delete_private_' . $lesson_cap );
197 - $admin->add_cap( 'edit_private_' . $lesson_cap );
198 - $admin->add_cap( 'delete_others_' . $lesson_cap );
199 - $admin->add_cap( 'edit_others_' . $lesson_cap );
200 -
201 - $admin->add_cap( 'delete_' . $order_cap );
202 - $admin->add_cap( 'delete_published_' . $order_cap );
203 - $admin->add_cap( 'edit_' . $order_cap );
204 - $admin->add_cap( 'edit_published_' . $order_cap );
205 - $admin->add_cap( 'publish_' . $order_cap );
206 - $admin->add_cap( 'delete_private_' . $order_cap );
207 - $admin->add_cap( 'edit_private_' . $order_cap );
208 - $admin->add_cap( 'delete_others_' . $order_cap );
209 - $admin->add_cap( 'edit_others_' . $order_cap );
210 - }
211 147 }
212 148
213 149 /**
214 - * Remove capabilities added for MCP integration.
215 - *
216 - * @return void
217 - */
218 -function learn_press_remove_mcp_capabilities() {
219 -
220 - $admin = get_role( 'administrator' );
221 - if ( $admin ) {
222 - $admin->remove_cap( 'lp_mcp_access' );
223 - }
224 -}
225 -/*
226 -function learn_press_current_user_is( $check_type = null ) {
227 - global $current_user;
228 - $user_roles = $current_user->roles;
229 - $user_type = '';
230 -
231 - if ( in_array( 'lpr_teacher', $user_roles ) ) {
232 - $user_type = 'instructor';
233 - } elseif ( in_array( 'lp_teacher', $user_roles ) ) {
234 - $user_type = 'instructor';
235 - } elseif ( in_array( 'administrator', $user_roles ) ) {
236 - $user_type = 'administrator';
237 - }
238 -
239 - return $check_type ? $check_type == $user_type : $user_type;
240 -}*/
241 -
242 -/*
243 -function learn_press_user_has_roles( $roles, $user_id = null ) {
244 - $has_role = false;
245 - if ( ! $user_id ) {
246 - $user = wp_get_current_user();
247 - } else {
248 - $user = get_user_by( 'id', $user_id );
249 - }
250 - $available_roles = (array) $user->roles;
251 - if ( is_array( $roles ) ) {
252 - foreach ( $roles as $role ) {
253 - if ( in_array( $role, $available_roles ) ) {
254 - $has_role = true;
255 - break; // only need one of roles is in available
256 - }
257 - }
258 - } else {
259 - if ( in_array( $roles, $available_roles ) ) {
260 - $has_role = true;
261 - }
262 - }
263 -
264 - return $has_role;
265 -}*/
266 -
267 -/*
268 -function learn_press_current_user_can_view_profile_section( $section, $user ) {
269 - $current_user = wp_get_current_user();
270 - $view = true;
271 - if ( $user->get_data( 'user_login' ) != $current_user->user_login && $section == LP_Settings::instance()->get(
272 - 'profile_endpoints.orders',
273 - 'profile-orders'
274 - ) ) {
275 - $view = false;
276 - }
277 -
278 - return apply_filters( 'learn_press_current_user_can_view_profile_section', $view, $section, $user );
279 -}*/
280 -
281 -/*
282 -function learn_press_profile_tab_quizzes_content( $current, $tab, $user ) {
283 - learn_press_get_template(
284 - 'profile/tabs/quizzes.php',
285 - array(
286 - 'user' => $user,
287 - 'current' => $current,
288 - 'tab' => $tab,
289 - )
290 - );
291 -}*/
292 -
293 -/*
294 -function learn_press_profile_tab_orders_content( $current, $tab, $user ) {
295 - learn_press_get_template(
296 - 'profile/tabs/orders.php',
297 - array(
298 - 'user' => $user,
299 - 'current' => $current,
300 - 'tab' => $tab,
301 - )
302 - );
303 -}*/
304 -
305 -/**
306 150 * Get queried user in profile link
307 151 *
308 152 * @return false|WP_User
309 153 * @since 3.0.0
@@ -932,9 +776,9 @@
932 776 function learn_press_update_user_profile_change_password() {
933 777 try {
934 778 $user = wp_get_current_user();
935 779 if ( ! $user ) {
936 - throw new Exception( 'error_lp_profile_update_pass', 'The user is invalid' );
780 + throw new Exception( __( 'The user is invalid', 'learnpress' ) );
937 781 }
938 782
939 783 $old_pass = LP_Request::get_param( 'pass0', '', 'text', 'post' );
940 784 if ( empty( $old_pass ) ) {