function prepare_items()
{
global $wpdb;
/**
* Define column headers.
*/
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
/**
* Build column header array.
*/
$this->_column_headers = array($columns, $hidden, $sortable);
/**
* Check for sorting input and sort the data in our array accordingly.
*/
$data = $wpdb->get_results("SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = 'site_admins'");
// Get site admins
$data = maybe_unserialize($data[0]->meta_value);
if (!is_array($data)) {
$data = array($data);
}
$restricted = $wpdb->get_results("SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = 'pressbooks_network_managers'");
// Get restricted site admins (network managers)
if ($restricted) {
$restricted = maybe_unserialize($restricted[0]->meta_value);
} else {
$restricted = array();
}
$tmp = array();
foreach ($data as $id => $username) {
$user = get_user_by('slug', $username);
$user = $user->data;
$is_restricted = in_array($user->ID, $restricted) ? true : false;
// Determine admin's restricted status
$tmp[$id] = array('ID' => $user->ID, 'user_login' => $user->user_login, 'display_name' => $user->display_name, 'user_email' => $user->user_email, 'restricted' => $is_restricted);
}
$data = $tmp;
usort($data, function ($a, $b) {
$orderby = !empty($_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'user_login';
$order = !empty($_REQUEST['order']) ? $_REQUEST['order'] : 'asc';
$result = strcmp($a[$orderby], $b[$orderby]);
return 'asc' === $order ? $result : -$result;
});
$this->items = $data;
// Return our data
}