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/admin/class-lp-reset-data.php +0 -208 4.4.44.4.8 View file →
@@ -1,10 +1,8 @@
1 1 <?php
2 2 class LP_Reset_Data {
3 3 public static function init() {
4 4 $ajax_events = array(
5 - 'search-users',
6 - 'reset-user-courses' => 'ajax_reset_user_courses',
7 5 'reset-user-item' => 'ajax_reset_user_item',
8 6 );
9 7
10 8 foreach ( $ajax_events as $action => $callback ) {
@@ -114,213 +112,7 @@
114 112 echo __( 'No data found', 'learnpress' );
115 113 }
116 114 // LP_Debug::rollbackTransaction();
117 115 die();
118 - }
119 -
120 - public static function search_users() {
121 - global $wpdb;
122 -
123 - $nonce = LP_Request::get_param( 'nonce' );
124 - if ( ! wp_verify_nonce( $nonce, 'wp_rest' ) ) {
125 - die( 'Nonce is invalid!' );
126 - }
127 -
128 - if ( ! current_user_can( 'administrator' ) ) {
129 - return;
130 - }
131 -
132 - $s = LP_Request::get_string( 's' );
133 - $query = $wpdb->prepare(
134 - "
135 - SELECT ID AS id, user_login AS username, user_email AS email, '' AS status
136 - FROM {$wpdb->users}
137 - WHERE user_login LIKE %s
138 - OR user_email LIKE %s
139 - ",
140 - '%' . $wpdb->esc_like( $s ) . '%',
141 - '%' . $wpdb->esc_like( $s ) . '%'
142 - );
143 -
144 - $users = array();
145 -
146 - $rows = $wpdb->get_results( $query );
147 - if ( $rows ) {
148 - $user_ids = wp_list_pluck( $rows, 'id' );
149 - $format = array_fill( 0, sizeof( $user_ids ), '%d' );
150 - $args = $user_ids;
151 - $args[] = LP_COURSE_CPT;
152 - $query = $wpdb->prepare( "SELECT user_id, item_id FROM {$wpdb->learnpress_user_items} WHERE user_id IN(" . join( ',', $format ) . ') AND item_type = %s', $args );
153 -
154 - $items = $wpdb->get_results( $query );
155 - if ( $items ) {
156 - $uids = wp_list_pluck( $items, 'user_id' );
157 - for ( $n = sizeof( $rows ), $i = $n - 1; $i >= 0; $i -- ) {
158 -
159 - if ( ! in_array( $rows[ $i ]->id, $uids ) ) {
160 - unset( $rows[ $i ] );
161 - continue;
162 - }
163 -
164 - if ( empty( $rows[ $i ]->courses ) ) {
165 - $rows[ $i ]->courses = array();
166 - }
167 - foreach ( $items as $item ) {
168 - if ( $item->user_id == $rows[ $i ]->id ) {
169 - $rows[ $i ]->courses[ $item->item_id ] = array(
170 - 'url' => get_the_permalink( $item->item_id ),
171 - 'id' => $item->item_id,
172 - 'title' => get_the_title( $item->item_id ),
173 - );
174 - }
175 - }
176 - }
177 - } else {
178 - $rows = array();
179 - }
180 -
181 - if ( $rows ) {
182 - foreach ( $rows as $k => $row ) {
183 - $users[] = $row;
184 - if ( sizeof( $users ) > 100 ) {
185 - break;
186 - }
187 - }
188 - }
189 - }
190 -
191 - learn_press_send_json( $users );
192 - }
193 -
194 - public static function ajax_reset_user_courses() {
195 - $user_id = LP_Request::get_int( 'user_id' );
196 - $course_id = LP_Request::get_int( 'course_id' );
197 - $object_reset = LP_Request::get_string( 'object_reset' );
198 - $user = learn_press_get_user( $user_id );
199 - if ( ! current_user_can( 'administrator' ) ) {
200 - return;
201 - }
202 -
203 - $nonce = LP_Request::get_param( 'nonce' );
204 - if ( ! wp_verify_nonce( $nonce, 'wp_rest' ) ) {
205 - die( 'Nonce is invalid!' );
206 - }
207 -
208 - if ( $course_id && $object_reset == 'single' ) {
209 - $user_course_data = $user->get_course_data( $course_id );
210 - if ( ! $user_course_data ) {
211 - return;
212 - }
213 -
214 - // Set status, start_time, end_time of course to enrol.
215 - $user_course_data->set_status( LP_COURSE_ENROLLED )
216 - ->set_start_time( time() )
217 - ->set_end_time()
218 - ->set_graduation( LP_COURSE_GRADUATION_IN_PROGRESS )
219 - ->update();
220 - // Remove items' course user learned.
221 - $filter_remove = new LP_User_Items_Filter();
222 - $filter_remove->parent_id = $user_course_data->get_user_item_id();
223 - $filter_remove->user_id = $user_course_data->get_user_id();
224 - $filter_remove->limit = - 1;
225 - LP_User_Items_DB::getInstance()->remove_items_of_user_course( $filter_remove );
226 - }
227 - if ( $object_reset == 'all' && $user_id ) {
228 - global $wpdb;
229 - $query = $wpdb->prepare(
230 - "
231 - SELECT item_id
232 - FROM {$wpdb->learnpress_user_items}
233 - WHERE user_id = %d AND item_type='lp_course'
234 - ",
235 - $user_id
236 - );
237 - $user_item_ids = $wpdb->get_col( $query );
238 - if ( $user_item_ids ) {
239 - foreach ( $user_item_ids as $user_item_id ) {
240 - $course_id = $user_item_id;
241 - $user_course_data = $user->get_course_data( $course_id );
242 - if ( ! $user_course_data ) {
243 - continue;
244 - }
245 -
246 - // Set status, start_time, end_time of course to enrolled.
247 - $user_course_data->set_status( LP_COURSE_ENROLLED )
248 - ->set_start_time( time() )
249 - ->set_end_time()
250 - ->set_graduation( LP_COURSE_GRADUATION_IN_PROGRESS )
251 - ->update();
252 - // Remove items' course user learned.
253 - $filter_remove = new LP_User_Items_Filter();
254 - $filter_remove->parent_id = $user_course_data->get_user_item_id();
255 - $filter_remove->user_id = $user_course_data->get_user_id();
256 - $filter_remove->limit = - 1;
257 - LP_User_Items_DB::getInstance()->remove_items_of_user_course( $filter_remove );
258 - }
259 - }
260 - }
261 -
262 - die();
263 - }
264 -
265 - public static function get_user_item_courses( $course_id, $user_id = 0 ) {
266 - global $wpdb;
267 -
268 - $where = '';
269 - if ( $user_id ) {
270 - $where = $wpdb->prepare( 'AND user_id = %d', $user_id );
271 - }
272 -
273 - $query = $wpdb->prepare(
274 - "
275 - SELECT *
276 - FROM {$wpdb->learnpress_user_items}
277 - WHERE item_type = %s
278 - AND item_id = %d
279 - $where
280 - ",
281 - LP_COURSE_CPT,
282 - $course_id
283 - );
284 -
285 - echo "$query\n";
286 -
287 - return $wpdb->get_results( $query );
288 - }
289 -
290 - public static function delete_user_items_by_id( $ids ) {
291 - settype( $ids, 'array' );
292 -
293 - global $wpdb;
294 -
295 - // Delete meta
296 - $format = array_fill( 0, sizeof( $ids ), '%d' );
297 - $query = $wpdb->prepare( "DELETE FROM {$wpdb->learnpress_user_itemmeta} WHERE learnpress_user_item_id IN(" . join( ',', $format ) . ')', $ids );
298 - $wpdb->query( $query );
299 - echo "$query\n";
300 -
301 - // Delete items
302 - $query = $wpdb->prepare( "DELETE FROM {$wpdb->learnpress_user_items} WHERE user_item_id IN(" . join( ',', $format ) . ')', $ids );
303 - $wpdb->query( $query );
304 -
305 - echo "$query\n";
306 -
307 - }
308 -
309 - public static function get_user_items_by_parent( $parent_id ) {
310 - global $wpdb;
311 -
312 - $query = $wpdb->prepare(
313 - "
314 - SELECT *
315 - FROM {$wpdb->learnpress_user_items}
316 - WHERE parent_id = %d
317 - ",
318 - $parent_id
319 - );
320 -
321 - echo "$query\n";
322 -
323 - return $wpdb->get_results( $query );
324 116 }
325 117 }
326 118 LP_Reset_Data::init();