PluginProbe
Tutor LMS – eLearning and online course solution / 2.5.0
Tutor LMS – eLearning and online course solution v2.5.0
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
← All changes | classes/Utils.php +37 -7 2.4.02.5.0 View file →
@@ -75,12 +75,9 @@
75 75 *
76 76 * @return void
77 77 */
78 78 public function redirect_to( string $url, $flash_message = null, $flash_type = 'success' ) {
79 - $url = trim( $url );
80 - if ( filter_var( $url, FILTER_VALIDATE_URL ) === false ) {
81 - wp_die( 'Not a valid URL for redirect' );
82 - }
79 + $url = esc_url( trim( $url ) );
83 80
84 81 $available_types = array( 'success', 'error' );
85 82 if ( ! empty( $flash_message ) && in_array( $flash_type, $available_types ) ) {
86 83 set_transient( 'tutor_flash_type', $flash_type );
@@ -2268,17 +2265,19 @@
2268 2265 /**
2269 2266 * Get the enrolled courses by user
2270 2267 *
2271 2268 * @since 1.0.0
2269 + * @since 2.5.0 $filters param added to query enrolled courses with additional filters.
2272 2270 *
2273 2271 * @param integer $user_id user id.
2274 2272 * @param string $post_status post status.
2275 2273 * @param integer $offset offset.
2276 2274 * @param integer $posts_per_page post per page.
2275 + * @param array $filters additional filters with key value for \WP_Query.
2277 2276 *
2278 2277 * @return bool|\WP_Query
2279 2278 */
2280 - public function get_enrolled_courses_by_user( $user_id = 0, $post_status = 'publish', $offset = 0, $posts_per_page = -1 ) {
2279 + public function get_enrolled_courses_by_user( $user_id = 0, $post_status = 'publish', $offset = 0, $posts_per_page = -1, $filters = array() ) {
2281 2280 global $wpdb;
2282 2281
2283 2282 $user_id = $this->get_user_id( $user_id );
2284 2283 $course_ids = array_unique( $this->get_enrolled_courses_ids_by_user( $user_id ) );
@@ -2292,8 +2291,17 @@
2292 2291 'offset' => $offset,
2293 2292 'posts_per_page' => $posts_per_page,
2294 2293 );
2295 2294
2295 + if ( count( $filters ) ) {
2296 + $keys = array_keys( $course_args );
2297 + foreach ( $filters as $key => $value ) {
2298 + if ( ! in_array( $key, $keys ) ) {
2299 + $course_args[ $key ] = $value;
2300 + }
2301 + }
2302 + }
2303 +
2296 2304 $result = new \WP_Query( $course_args );
2297 2305
2298 2306 if ( is_object( $result ) && is_array( $result->posts ) ) {
2299 2307
@@ -6495,8 +6503,26 @@
6495 6503 return apply_filters( 'tutor_referer_url', $url );
6496 6504 }
6497 6505
6498 6506 /**
6507 + * Get HTTP referer field
6508 + *
6509 + * @since 2.5.0
6510 + *
6511 + * @param boolean $url_decode URL decode for unicode support.
6512 + *
6513 + * @return void|string
6514 + */
6515 + public function referer_field( $url_decode = true ) {
6516 + $url = remove_query_arg( '_wp_http_referer' );
6517 + if ( $url_decode ) {
6518 + $url = urldecode( $url );
6519 + }
6520 +
6521 + echo '<input type="hidden" name="_wp_http_referer" value="'. esc_url( $url ) .'">';
6522 + }
6523 +
6524 + /**
6499 6525 * Get the frontend dashboard course edit page
6500 6526 *
6501 6527 * @since 1.3.4
6502 6528 *
@@ -9528,10 +9554,14 @@
9528 9554 if ( ! array_key_exists( $result->content_type, $course_meta[ $result->course_id ] ) ) {
9529 9555 $course_meta[ $result->course_id ][ $result->content_type ] = array();
9530 9556 }
9531 9557
9532 - if ( $result->content_id ) {
9533 - $course_meta[ $result->course_id ][ $result->content_type ][] = $result->content_id;
9558 + try {
9559 + if ( $result->content_id ) {
9560 + $course_meta[ $result->course_id ][ $result->content_type ][] = $result->content_id;
9561 + }
9562 + } catch (\Throwable $th) {
9563 + tutor_log( 'Affected course ID : ' . $result->course_id . ' Error : '. $th->getMessage() );
9534 9564 }
9535 9565 }
9536 9566
9537 9567 // Unify counts.