{$item['id']} = true; } } $limit = 10; $db = UserItemsDB::getInstance(); $total_rows = 0; $filter = new UserItemsFilter(); $filter->limit = $limit; $filter->page = $paged; $filter->only_fields = [ 'DISTINCT(ui.user_item_id)', 'ui.item_id', 'ui.user_id', 'ui.item_type', 'ui.ref_id', ]; // Filter by ref_type = course (items belong to a course) $filter->ref_type = LP_COURSE_CPT; // Get only user_id > 0 $filter->where[] = 'AND ui.user_id > 0'; // Filter by item type if ( ! empty( $item_type ) ) { $filter->item_type = $item_type; } else { $item_types = CourseModel::item_types_support(); $types_format = LP_Helper::db_format_array( $item_types, '%s' ); // phpcs:disable WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $filter->where[] = $db->wpdb->prepare( 'AND ui.item_type IN (' . $types_format . ')', ...$item_types ); // phpcs:enable WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare } // Search item by title if ( ! empty( $search_item ) ) { $filter->join[] = "INNER JOIN {$db->tb_posts} AS p ON ui.item_id = p.ID"; $filter->where[] = $db->wpdb->prepare( 'AND p.post_title LIKE %s', '%' . $db->wpdb->esc_like( $search_item ) . '%' ); } // Search course by title if ( ! empty( $search_course ) ) { $filter->join[] = "INNER JOIN {$db->tb_posts} AS pc ON ui.ref_id = pc.ID"; $filter->where[] = $db->wpdb->prepare( 'AND pc.post_title LIKE %s', '%' . $db->wpdb->esc_like( $search_course ) . '%' ); } // Search user if ( ! empty( $search_user ) ) { $filter->join[] = "INNER JOIN {$db->tb_users} AS u ON ui.user_id = u.ID"; $esc_search_user = '%' . $db->wpdb->esc_like( $search_user ) . '%'; $filter->where[] = $db->wpdb->prepare( 'AND (u.display_name LIKE %s OR u.user_login LIKE %s OR u.user_email LIKE %s)', $esc_search_user, $esc_search_user, $esc_search_user ); } $userItems = $db->get_user_items( $filter, $total_rows ); $total_pages = DataBase::get_total_pages( $limit, $total_rows ); $html_lis = ''; if ( empty( $userItems ) ) { $html_lis = Template::print_message( esc_html__( 'No data found', 'learnpress' ), 'info', false ); } else { foreach ( $userItems as $userItem ) { $user_item_id = intval( $userItem->user_item_id ?? 0 ); if ( empty( $user_item_id ) ) { continue; } $checked = ''; if ( isset( $selected_compare->{$user_item_id} ) ) { $checked = ' checked="checked"'; } $item_title_raw = get_the_title( $userItem->item_id ); $item_title = $item_title_raw ? $item_title_raw : __( 'Unknown', 'learnpress' ); $course_title_raw = get_the_title( $userItem->ref_id ); $course_title = $course_title_raw ? $course_title_raw : __( 'Unknown', 'learnpress' ); $userModel = UserModel::find( $userItem->user_id, true ); $user_name = $userModel ? $userModel->get_display_name() : __( 'Unknown', 'learnpress' ); $title_display = sprintf( '%s (#%d) - %s - %s (#%d)', esc_html( $item_title ), esc_html( $userItem->item_id ), esc_html( $course_title ), esc_html( $user_name ), esc_html( $userItem->user_id ) ); $html_lis .= sprintf( '