OwlCyberSecurity - MANAGER
Edit File: class-wp-statistics-admin-user.php
<?php namespace WP_STATISTICS; use WP_Statistics\Components\DateRange; use WP_Statistics\Models\VisitorsModel; class Admin_User { /** * constructor. */ public function __construct() { // Add Views Column in All Admin User Wp_List_Table if (User::Access('read') and Option::get('enable_user_column')) { add_filter('manage_users_columns', array($this, 'add_column_user_table')); add_filter('manage_users_custom_column', array($this, 'modify_user_table_row'), 10, 3); add_filter('manage_users_sortable_columns', array($this, 'sort_by_custom_field')); add_action('pre_user_query', array($this, 'modify_pre_user_query')); } // Reset User_id as User is deleted. add_action('delete_user', array($this, 'modify_delete_user')); } /** * Add Views Link * * @param $column * @return mixed */ public function add_column_user_table($column) { $column['visits'] = __("Views", "wp-statistics"); return $column; } /** * Modify Users Row * * @param $val * @param $column_name * @param $user_id * @return mixed */ public function modify_user_table_row($val, $column_name, $user_id) { switch ($column_name) { case 'visits' : $visitorsModel = new VisitorsModel(); $count = $visitorsModel->getVisitorHits(['user_id' => $user_id, 'ignore_date' => true]); return '<a href="' . Menus::admin_url('visitors', array_merge(['user_id' => $user_id], DateRange::get('total'))) . '" class="wps-text-muted" target="_blank">' . number_format_i18n($count) . '</a>'; default: } return $val; } /** * Sort By Users Visit * * @param $columns * @return mixed */ function sort_by_custom_field($columns) { $columns['visits'] = 'visit'; return $columns; } /** * Pre User Query Join by visitors * * @param $user_query */ public function modify_pre_user_query($user_query) { global $wpdb; // Check in Admin if (!is_admin()) { return; } // If order-by. if (isset($user_query->query_vars['orderby']) and isset($user_query->query_vars['order']) and $user_query->query_vars['orderby'] == 'visit') { // Get global Variable $order = $user_query->query_vars['order']; // Select Field $user_query->query_fields .= ", (select Count(*) from " . DB::table("visitor") . " where {$wpdb->users}.ID = " . DB::table("visitor") . ".user_id) as user_visit "; // And order by it. $user_query->query_orderby = " ORDER BY user_visit $order"; } return $user_query; } /** * Remove User from Visitors Table when user is deleted. * * @param $user_id */ public function modify_delete_user($user_id) { global $wpdb; $wpdb->update(DB::table("visitor"), array('user_id' => 0), array('user_id' => $user_id), array('%d'), array('%d')); } } new Admin_User;