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/TemplateHooks/Admin/Tools/AdminCourseTools.php +24 -4 4.4.64.4.8 View file →
@@ -12,8 +12,9 @@
12 12 use Exception;
13 13 use LearnPress\Databases\DataBase;
14 14 use LearnPress\Databases\UserItemsDB;
15 15 use LearnPress\Filters\UserItemsFilter;
16 +use LearnPress\Helpers\Response;
16 17 use LearnPress\Helpers\Singleton;
17 18 use LearnPress\Helpers\Template;
18 19 use LearnPress\Models\CourseModel;
19 20 use LearnPress\Models\UserItems\UserCourseModel;
@@ -25,8 +26,11 @@
25 26 defined( 'ABSPATH' ) || exit;
26 27
27 28 /**
28 29 * Class AdminCourseTools
30 + *
31 + * @since 4.4.6
32 + * @version 1.0.1
29 33 */
30 34 class AdminCourseTools {
31 35 use Singleton;
32 36
@@ -220,9 +224,13 @@
220 224 ];
221 225
222 226 $content->content = Template::combine_components( $section );
223 227 } catch ( Throwable $exception ) {
224 - $content->content = Template::print_message( $exception->getMessage(), 'error', false );
228 + $content->content = Template::print_message(
229 + $exception->getMessage(),
230 + Response::STATUS_ERROR,
231 + false
232 + );
225 233 }
226 234
227 235 return $content;
228 236 }
@@ -233,14 +241,19 @@
233 241 * @param array $data Request arguments.
234 242 *
235 243 * @return stdClass
236 244 * @since 4.4.6
237 - * @version 1.0.0
245 + * @version 1.0.1
238 246 */
239 247 public static function render_courses_to_reset_progress( array $data ): stdClass {
240 248 $content = new stdClass();
241 249
242 250 try {
251 + // Check permission
252 + if ( ! current_user_can( UserModel::ROLE_ADMINISTRATOR ) ) {
253 + throw new Exception( 'Access denied.' );
254 + }
255 +
243 256 $item_selecting = $data['item_selecting'] ?? [];
244 257 $search_course = trim( $data['lp-search-course'] ?? '' );
245 258 $search_user = trim( $data['lp-search-user'] ?? '' );
246 259 $paged = max( 1, intval( $data['paged'] ?? 1 ) );
@@ -271,9 +284,12 @@
271 284 $filter_course_attendance->ref_type = LP_COURSE_CPT;
272 285 $filter_course_attendance->return_string_query = 1;
273 286 $filter_course_attendance->limit = -1;
274 287 $query_course_attendance = $db->get_user_items( $filter_course_attendance );
275 - $filter->where[] = "AND ui.user_item_id IN ({$query_course_attendance})";
288 + $filter->where[] = sprintf(
289 + 'AND ui.user_item_id IN (%s)',
290 + $query_course_attendance
291 + );
276 292 // End get only courses has items attendance
277 293
278 294 // Get only user_id > 0
279 295 $filter->where[] = 'AND ui.user_id > 0';
@@ -371,9 +387,13 @@
371 387 ];
372 388
373 389 $content->content = Template::combine_components( $section );
374 390 } catch ( Throwable $exception ) {
375 - $content->content = Template::print_message( $exception->getMessage(), 'error', false );
391 + $content->content = Template::print_message(
392 + $exception->getMessage(),
393 + Response::STATUS_ERROR,
394 + false
395 + );
376 396 }
377 397
378 398 return $content;
379 399 }