WordPress user management

Finally know who's actually still using this site

Last Login records when every user last signed in and adds a sortable "Last Login" column to the Users list — a record WordPress keeps nowhere at all by default.

  • Adds a sortable Last Login column to the Users list.
  • Records the exact timestamp on every successful login.
  • Shows "Never" clearly for accounts that haven't signed in yet.
  • Integrates directly with Custom Content Columns, if active.
Users List ColumnLast Login
UserRole
lorenzoAdministrator
editor_mariaEditor
old_editorEditor
contractor_2024Author
4 accounts, 2 look dormantSortable by Last Login to spot them instantly.
Active
Quick answer

What does Last Login do?

When the last_login module is active, TOWP_Last_Login records a timestamp in user meta every time a user successfully logs in, via the wp_login action. A sortable "Last Login" column gets added to the Users list in wp-admin, formatted using the site's own configured date and time settings, showing "Never" for any user who hasn't logged in since the module was activated. Since sorting the column runs a proper numeric sort on the underlying timestamp rather than an alphabetical sort on the displayed date text, dormant accounts group together correctly regardless of date format.

The "who's still using this" problem

WordPress keeps no record of this at all

Since login activity leaves no trace by default, even a basic question about an account list has no ready answer.

There's no way to answer the most ordinary account question

A site with more than a handful of users has no built-in way to tell which accounts are actually still in use and which have quietly gone dormant.

Dormant accounts are exactly the ones worth closing

A contractor's account from two years ago, or an editor who left the team, is pure risk with no offsetting benefit once nobody's actually using it.

A dedicated WordPress solution

One column, sortable, answering the question directly

The module records the one piece of information WordPress never kept, and surfaces it exactly where an administrator already looks.

A timestamp recorded on every login

Each successful login updates the exact time in user meta, building a genuine record rather than a guess.

Sortable, not just visible

Sorting the Users list by Last Login groups the dormant accounts together instantly, rather than requiring a scroll through every row.

Built to work alongside Custom Content Columns

The column integrates directly with TheOneWP's own column manager, appearing among its default active columns automatically.

Verified feature set

A real record, sortable and integrated

Every capability below is present in the supplied PHP class and its settings registration.

A genuinely sortable column

Numeric sort on the real timestamp

Sorting switches the underlying query to order by the actual numeric timestamp, not the formatted date text, so dormant accounts group correctly regardless of display format.

pre_get_usersmeta_value_num ordering
Formatted using the site's own settings

No hardcoded date format

The displayed date and time use whatever format is already configured in Settings, Reading, matching the rest of the admin.

Site date_formatSite time_format
A clear "Never" state

Not a blank cell

An account that hasn't logged in since the module was activated shows a clearly labeled "Never" instead of an empty, ambiguous space.

Explicit Never stateMuted styling
Deep Custom Content Columns integration

Appears among CCC's default active columns

The column automatically injects itself into Custom Content Columns' own default configuration, so it's already visible without manual setup.

towp_ccc_default_active_users_columnsNo manual configuration needed
Cleans up after itself if disabled

No orphaned column left behind

Turning the module off automatically removes any saved reference to the column from Custom Content Columns' configuration, rather than leaving a dangling entry.

Automatic cleanupNo orphaned settings
Practical use cases

Where seeing last login helps most

The module supports any site where account activity has never been tracked before.

Auditing accounts on a site with many users

Sort by Last Login to find every account that's gone quiet, in one pass, without checking each user individually.

Cleaning up after contractors or former staff

Spot exactly which accounts belong to people who no longer need access, based on actual login activity rather than memory.

General account hygiene as part of routine maintenance

Make a periodic dormant-account review something that takes seconds instead of requiring a manual investigation.

Operational benefits

An answer WordPress never gave, right where it's needed

The module combines a genuinely missing piece of information with clean integration into how columns already work.

An answer WordPress never providedA question every multi-user site eventually asks finally has a direct answer, visible in the same list already used to manage users.
Grouped, not scatteredA sortable column means dormant accounts appear together, instead of being scattered across a list sorted by username or role.
No conflict with Custom Content ColumnsThe module checks for existing output before rendering its own, so the two don't double-render or fight over the same column.
Nothing left behind if it's turned offDisabling the module cleans up its own column reference from Custom Content Columns automatically.
Performance behaviour

One write per login, nothing beyond the Users list

The verified implementation keeps its footprint small and tightly scoped.

One meta update per login, nothing more

Recording the timestamp is a single user-meta write that happens exactly once, at the moment of a successful login.

No effect outside the Users list

The column and its sorting logic are scoped entirely to wp-admin's Users screen; nothing runs anywhere else on the site.

A standard indexed sort, not a custom query

Sorting by Last Login uses WordPress's own meta_value_num ordering, the same mechanism used for any other numeric meta-based sort.

Security implementation

Visibility for review, no automatic action taken

The module surfaces exactly what's needed for a human decision, without acting on any account itself.

01

Surfaces exactly the accounts worth reviewing

A dormant account is a standing risk with no benefit; making it visible is a direct step toward closing that gap.

02

Read-only with respect to accounts themselves

The module only records and displays login activity; it doesn't lock, disable, or modify any account on its own.

03

Visible only inside wp-admin's Users screen

The Last Login data appears only where an administrator with access to manage users would already be looking.

04

Configuration requires the same access as any other setting

Enabling the module happens through the standard TheOneWP settings screen, available only to an administrator.

Verified compatibility

Built directly around WordPress's own Users list columns

The supplied code integrates through APIs present in WordPress core and TheOneWP's own modules; this page makes no compatibility claim beyond the verified implementation.

Login tracking

wp_login action

The native WordPress action that fires on every successful login, used here to record the timestamp.

wp_loginNative login hook
Users list columns

manage_users_columns and related filters

The standard WordPress filters used to add, render and sort a custom column on the Users list screen.

manage_users_columnsmanage_users_sortable_columns
Custom Content Columns

towp_ccc_default_active_users_columns filter

A dedicated TheOneWP filter that lets this module register itself as a default active column within Custom Content Columns, if that module is active.

towp_ccc_default_active_users_columnsCross-module integration
Solution comparison

TheOneWP versus common alternatives

Compare the verified Last Login implementation with a typical standalone login-tracking plugin.

CapabilityTheOneWP Last LoginOther common solutions
Recording login activity Every successful login, via the native wp_login hookOften relies on a separate, heavier logging plugin
Sorting behavior A genuine numeric sort on the real timestampSome approaches sort alphabetically on the formatted date text, grouping incorrectly
Date formatting Uses the site's own configured date and time formatFrequently hardcoded to a fixed format
Custom Content Columns integration Appears as a default active column automaticallyUsually requires manual configuration to surface in a column manager
Cleanup on disable Removes its own column reference automaticallyCan leave an orphaned or broken column reference behind
Recommended workflow

Find dormant accounts in four steps

Since there's nothing to configure beyond enabling it, using the column is the real workflow here.

01

Enable Last Login

Activate the module from the TheOneWP Login settings tab; there's nothing further to configure.

02

Open the Users list

Visit wp-admin's Users screen and find the new Last Login column.

03

Sort by Last Login

Click the column header to group dormant accounts together, sorted from most recent or oldest.

04

Review and act on dormant accounts

Use the sorted list to decide which accounts genuinely still need access.

Best practices

Make it a habit, not a one-time check

The column stays useful only if it actually gets reviewed on some regular basis.

01

Make dormant-account review a routine, not a one-time check

Since the column stays live and sortable, revisiting it periodically keeps account hygiene current rather than a one-off cleanup.

02

Confirm before removing access from a dormant account

A long gap since the last login is a strong signal, not automatic proof that access should be revoked immediately.

03

Pair it with Custom Content Columns for a tailored Users list

Since the module integrates directly, use CCC to decide exactly where the column sits alongside others.

04

Remember the record starts from activation, not from account creation

An account that logged in once before the module was enabled will show its login only from that point forward, not its full history.

Common mistakes

Avoid reading more into the column than it says

A couple of details are worth keeping in mind before acting on what the column shows.

Assuming "Never" means the account is unused historically

"Never" reflects activity since the module was activated, not necessarily the account's entire history.

Sorting by the formatted date text mentally, not the actual column sort

Trust the column's own sort control rather than trying to compare formatted dates visually across many rows.

Removing access from a dormant account without checking first

A long gap since login is a strong signal worth investigating, not by itself a reason to act without confirming the account is genuinely no longer needed.

Frequently asked questions

Last Login FAQ

These answers come directly from the verified class and its settings registration.

What does Last Login do?

It records when each user last signed in and adds a sortable Last Login column to the Users list in wp-admin.

Does WordPress track this by default?

No. WordPress keeps no record of login activity by default; this module adds that tracking specifically.

Can I sort the Users list by Last Login?

Yes. The column sorts numerically by the actual login timestamp, not alphabetically by the displayed date text.

What does the column show for a user who has never logged in?

It shows "Never," clearly styled, instead of leaving the cell blank.

Does this work with Custom Content Columns?

Yes. The column integrates directly and appears among Custom Content Columns' default active columns automatically.

What happens to the column if I disable the module?

Any saved reference to the column in Custom Content Columns gets removed automatically, so nothing orphaned is left behind.

Does the recorded date use a fixed format?

No. It uses the date and time format already configured in the site's own Settings, Reading screen.

Does this track login attempts, or only successful logins?

Only successful logins. The timestamp updates via WordPress's own wp_login action, which fires after a successful authentication.

Does this affect anything outside the Users list?

No. The module's column and sorting logic are scoped entirely to the wp-admin Users screen.

Who can see the Last Login column?

Anyone with access to the Users screen in wp-admin, the same access already required to manage users.

Stop guessing which accounts are still active.See exactly who's logged in, and who hasn't.

Use Last Login to add a sortable record of login activity to the Users list, the one thing WordPress never tracked on its own.