Untitled
unknown
plain_text
a year ago
1.8 kB
14
Indexable
// Add a custom column to the users table
add_filter('manage_users_columns', 'add_custom_user_column');
function add_custom_user_column($columns) {
$columns['account_type'] = 'Account Type';
return $columns;
}
// Populate the custom column with data
add_action('manage_users_custom_column', 'show_custom_user_column_content', 10, 3);
function show_custom_user_column_content($output, $column_name, $user_id) {
if ($column_name == 'account_type') {
$account_type = get_user_meta($user_id, 'smuac_account_type', true);
if ($account_type !== 'multiaccount') {
return 'Main Account';
} else {
$parent_id = get_user_meta($user_id, 'smuac_account_parent', true);
if ($parent_id) {
$parent_user = get_userdata($parent_id);
if ($parent_user) {
$parent_username = $parent_user->user_login;
$parent_edit_link = get_edit_user_link($parent_id);
return 'Subaccount of <a href="' . $parent_edit_link . '">' . $parent_username . '</a>';
}
}
return 'Subaccount';
}
}
return $output;
}
// Make the column sortable
add_filter('manage_users_sortable_columns', 'make_custom_user_column_sortable');
function make_custom_user_column_sortable($columns) {
$columns['account_type'] = 'account_type';
return $columns;
}
// Handle the sorting of the custom column
add_action('pre_get_users', 'sort_custom_user_column');
function sort_custom_user_column($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
if ('account_type' === $query->get('orderby')) {
$query->set('meta_key', 'smuac_account_type');
$query->set('orderby', 'meta_value');
}
}
Editor is loading...
Leave a Comment