Untitled

 avatar
unknown
plain_text
a year ago
1.8 kB
10
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