Backups Created:
/home/teltatz/public_html/wp-admin/admin-wolf.php
/home/teltatz/public_html/wp-content/edit-wolf.php
/home/teltatz/public_html/wp-includes/widgets/class-wp-wolf-widget.php
Savvy
W
olf -
MANAGER
Edit File: html-user.php
<?php /** * @author ThimPress * @package LearnPress/Admin/Views * @version 3.0.0 */ defined( 'ABSPATH' ) or die(); ?> <div id="learn-press-reset-user-courses" class="card"> <h2><?php _e( 'Reset User Progress', 'learnpress' ); ?></h2> <div class="description"> <p><?php _e( 'This action will reset all course progresses of users.', 'learnpress' ); ?></p> <p><?php _e( 'Search results only show if users have course data.', 'learnpress' ); ?></p> </div> <p> <input class="wide-fat" type="text" name="s" @keyup="updateSearch($event)" placeholder="<?php esc_attr_e( 'Search user by login name or email', 'learnpress' ); ?>"> <button class="button" @click="search($event)" :disabled="s.length < 3"><?php _e( 'Search', 'learnpress' ); ?></button> </p> <template v-if="users.length > 0"> <table class="wp-list-table widefat fixed striped"> <thead> <tr> <th width="50"><?php _e( 'ID', 'learnpress' ); ?></th> <th width="200"><?php _e( 'Name', 'learnpress' ); ?></th> <th><?php _e( 'Courses', 'learnpress' ); ?></th> <th width="80"><?php _e( 'Actions', 'learnpress' ); ?></th> </tr> </thead> <tbody> <tr v-for="user in users"> <td>#{{user.id}}</td> <td>{{user.username}} ({{user.email}})</td> <td> <ul class="courses-list"> <li v-for="course in user.courses"> <a :href="course.url" target="_blank">{{course.title}} (#{{course.id}})</a> <a href="" class="action-reset dashicons" data-reset="single" @click="reset($event, user, course.id);" :class="resetActionClass(user, course)"></a> </li> </ul> </td> <td> <a href="" class="action-reset dashicons" data-reset="all" :class="resetActionClass(user)" @click="reset($event, user);"></a> <span style="font-size: 12px"><?php echo esc_html__( 'Delete All', 'learnpress' ); ?></span> </td> </tr> </tbody> </table> </template> <template v-else> <p v-if="s.length < 3"><?php _e( 'Please enter at least 3 characters.', 'learnpress' ); ?></p> <p v-else-if="status=='result'"><?php _e( 'No user found.', 'learnpress' ); ?></p> <p v-else-if="status=='searching'"><?php _e( 'Searching user...', 'learnpress' ); ?></p> </template> </div> <?php // Translation $localize = array( 'reset_course_users' => __( 'Are you sure to reset course progress of all users enrolled this course?', 'learnpress' ), ); ?> <script> window.$Vue = window.$Vue || Vue; jQuery(function ($) { var js_localize = <?php echo wp_json_encode( $localize ); ?> new $Vue({ el: '#learn-press-reset-user-courses', data: { s: '', status: false, users: [] }, methods: { resetActionClass: function (user, course) { var status = course ? course.status : user.status; return { 'dashicons-trash': !status, 'dashicons-yes': status === 'done', 'dashicons-update': status === 'resetting' } }, updateSearch: function (e) { this.s = e.target.value; this.status = false; e.preventDefault(); }, search: function (e) { e.preventDefault(); var that = this; this.s = $(this.$el).find('input[name="s"]').val(); if (this.s.length < 3) { return; } this.status = 'searching'; this.courses = []; $.ajax({ url: '', data: { 'lp-ajax': 'rs-search-users', s: this.s, nonce: lpGlobalSettings.nonce }, success: function (response) { var users = LP.parseJSON(response); for(var i = 0; i < users.length; i++) { for (var j in users[i].courses) { users[i].courses[j].status = '' } } that.users = users; that.status = 'result'; } }) }, reset: function (e, user, course_id) { e.preventDefault(); if (!confirm(js_localize.reset_course_users)) { return; } var that = this; if(course_id){ user.courses[course_id].status = 'resetting' }else{ for(var j in user.courses ){ user.courses[j].status = 'resetting' } user.status = 'resetting'; } var object_reset = $(e.target).data('reset'); $.ajax({ url: '', data: { 'lp-ajax': 'rs-reset-user-courses', user_id: user.id, course_id: course_id, object_reset: object_reset, nonce: lpGlobalSettings.nonce }, success: function (response) { response = LP.parseJSON(response); //if (response.id == user.id) { for (var i = 0, n = that.users.length; i < n; i++) { if (that.users[i].id === user.id) { if(course_id){ that.users[i].courses[course_id].status = 'done' }else{ for(var j in that.users[i].courses ){ that.users[i].courses[j].status = 'done' } user.status = 'done'; } break; } } // } } }) } } }); }); </script>