WP Last Login

Plugin Banner

WP Last Login

by Konstantin Obenland

Download
Description

WP Last Login records when each user signs in and surfaces it as a sortable column on the Users screen — so you can see who’s active, identify dormant accounts, and confirm that real people are coming back.

Features

  • Sortable “Last Login” column on the Users screen, including the network admin user list on multisite.
  • Hover any date to reveal the exact login time.
  • Captures logins via the standard wp_login action, so it works with any login flow that triggers it — including the Two Factor plugin, WooCommerce, BuddyBoss, and most social-login plugins.
  • Users without a recorded login show a neutral em-dash (—) — never a misleading “never” — and still sort correctly when ordered by last login.
  • Lightweight: one user meta key, no settings page, no extra database tables.
  • Filter hooks let you customize the date format, the placeholder shown for users without a recorded login, or hide the column from non-admin roles.

Plugin Filter Hooks

wpll_current_user_can (boolean)

Whether the column is supposed to be shown.
Default: true

wpll_date_format (string)

The date format string for the date output.

wpll_no_login_output (string, int)

The markup displayed for users without a recorded login, and the user’s ID.
Default: an em-dash with an explanatory tooltip

  1. Download WP Last Login.
  2. Unzip the folder into the /wp-content/plugins/ directory.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.
  1. Last login column in the user table.

    Last login column in the user table.

Why does the column show an em-dash (—) for all my users?

The plugin records a login when a user signs in after it’s been activated. WordPress doesn’t store historical login data, so existing accounts will start populating their “Last Login” the next time each user logs in. Hovering the dash shows a tooltip explaining the same.

How do I change the date format or show the time?

The date follows your site’s general date format (Settings General); the exact time appears on hover. To override the date format, use the wpll_date_format filter:

add_filter( 'wpll_date_format', function() {
    return 'Y-m-d H:i';
} );

How do I change what’s shown for users without a recorded login?

Filter wpll_no_login_output. It receives the default placeholder markup and the user ID, and whatever you return is printed as-is, so escape any custom output:

add_filter( 'wpll_no_login_output', function( $output, $user_id ) {
    return esc_html__( '(No logins since October 9, 2026)', 'my-textdomain' );
}, 10, 2 );

How do I hide the column from non-admin users?

Filter wpll_current_user_can and return a capability check. Login tracking still happens — only column visibility is gated:

add_filter( 'wpll_current_user_can', function() {
    return current_user_can( 'manage_options' );
} );

Does it work with multisite, Two Factor, WooCommerce, BuddyBoss, or social login plugins?

Yes. The plugin hooks into WordPress’s standard wp_login action, so any login method that triggers it is captured. The Two Factor plugin (which interrupts wp_login) is supported via a dedicated hook.

What happens to my data if I deactivate the plugin?

Deactivating leaves stored login timestamps intact, so reactivating preserves history. Uninstalling (deleting the plugin entirely) removes all of the plugin’s user meta.

Does exactly what it needs to (and no more)!

By Jason LeMahieu (MadtownLems) (MadtownLems) on October 9, 2026

A rare gem of a plugin that does exactly what it needs to, perfectly, and no bloat.

As a bonus, it includes amazing support: 18 minutes from a feature request to implementation! 😮

I’m so impressed by both of those things that I’m off to see what other plugins this developer maintains…. A+ plugin.

Very useful

By Joris Le Blansch (apiosys) on January 1, 2026

Simple, yet very useful plugin. Using it on dozens of sites I manage.

as perfect as simple

By amiens80 on October 4, 2024

this is the kind of plugin i love : just install, activated, no need setting, it runs fine!

no need support. As an english person, i have no need to translate it at all.

Great one !

Work fine on wp 6.6.2 and wp 6.6.1

ps : I would request another tiny feature : add the last ip of login date !

Works WP 6.5

By flyingkites on April 3, 2024

Switched to this plugin as another similar plugin by YooHoo was incompatible with TwoFactor.

This works with both TwoFactor and Limit Login Attempts plugins.

[Anyone who says it does not work likely has a code conflict with another plugin]

Excellent + now compatible with Two Factor

By DigitalGdn (bkno) on December 27, 2023

Well maintained plugin. This is the only ‘last login’ plugin I have found that supports two factor.

Doesn't work, sadly

By editorialteamnwu on January 30, 2023

Totally useless: every user is listed as never having logged in, even the one I’m currently logged in as to view this. Two stars instead of one because at least it didn’t seem to break anything.

Is not reliable

By Dirk (dirkhag) on November 18, 2019

It shows users as Login “Never” even the users have been logged in. I decided on this information to delete users! Good luck, I had an early backup of the database! Do not trust in this Plugin!

Didn't help me do what I needed to do.

By rwbeckettcorp on August 1, 2018

I’m giving two stars because the plugin didn’t break anything and appeared to be working just fine. I left this on for over a year to help me identify which users out of 20,000+ actually log into my site. After a year, I deleted the users that had “never” logged in, only to find I deleted users who had recently signed up for classes on my site. To sign up for a class on my site, you have to log in first. Thank goodness for backups. Unfortunately, this plugin doesn’t serve its purpose reliably and the information it shows can’t be trusted. I cannot recommend it.

Last Login to the WP Core

By mbenken on July 13, 2018

Great plugin–very easy to use. To Konstantin Obenland: The other CMS, Drupal, has this functionality built in to the core of their cms. Request that the makers of WordPress to add your cool plugin to the core of WordPress, perhaps in the upcoming version of WordPress 5.0.

Good job!

By Adam Pery (adam1920) on June 6, 2018

Works fine, tnx!

9

8

  • Fixed users with no recorded login being dropped from the list when sorting by Last Login.
  • Removed the activation routine that seeded a default value for every existing user, which could time out on sites with large user bases. Sorting no longer depends on it. Props @fwielstra.
  • Replaced the “Never.” placeholder with a neutral em-dash and an explanatory tooltip.
  • Raised the minimum PHP version to 8.1. PHP 7.4 and 8.0 reached end of life and no longer receive security updates.
  • Tested up to WordPress 7.1.

7

  • Added compatibility with Two Factor plugin. Props @bkno.
  • Improved date display to display login time on hover.

6

  • Revamped file structure to remove unnecessary files.
  • Fixed a bug where login dates were overwritten on plugin reactivation. Props @richardbuff.

5

  • Improved uninstall routine (no longer queries all users).
  • Updated utility class.
  • Tested with WordPress 6.1.

4

  • Improved date display to account for the timezone of the site. Props @knutsp.

3

2

  • Maintenance release.
  • Updated code to adhere to WordPress Coding Standards.
  • Tested with WordPress 5.0.

1.4.0

  • Fixed a long standing bug, where sorting users by last login didn’t work.
  • Tested with WordPress 4.3.

1.3.0

  • Maintenance release.
  • Tested with WordPress 4.0.

1.2.1

  • Reverts changes to wp_login() as the second argument seems not to be set at all times.

1.2.0

  • Users are now sortable by last login!
  • Updated utility class.
  • Added Danish translation. Props thomasclausen.

1.1.2

  • Fixed a bug where content of other custom columns were not displayed.

1.1.1

  • Updated utility class.

1.1.0

  • Made the display of the column filterable.
  • Widened the column a bit to accommodate for large date strings.

1.0

  • Initial Release.