[wp-trac] [WordPress Trac] #16791: Save timestamp of user's last login to usermeta

WordPress Trac wp-trac at lists.automattic.com
Mon Mar 7 22:19:20 UTC 2011


#16791: Save timestamp of user's last login to usermeta
-----------------------------+-----------------------------
 Reporter:  joelhardi        |      Owner:
     Type:  feature request  |     Status:  new
 Priority:  normal           |  Milestone:  Awaiting Review
Component:  Users            |    Version:  3.1
 Severity:  normal           |   Keywords:  dev-feedback
-----------------------------+-----------------------------
 Right now there's no way to tell when a user last logged in, or even if
 they've ever logged in.

 My suggestion is to simply store a 'last_login' timestamp in usermeta
 (similar to the way bbPress stores a 'last_posted' timestamp when a user
 posts). The usermeta row would be initially absent, then be inserted when
 a user first logs in, and then be updated on every successful login.

 I haven't written a patch but am happy to do so if this task is blessed or
 has a reasonable chance for inclusion in core. It should be very
 straightforward.

 I see a wide range of possible uses for this small bit of user info. For
 instance, a plugin could delete, deactivate, email an "are you there?
 please come back" message or flag a user after a certain period of
 inactivity. Or, a plugin could add a column to the users screen, allowing
 the table to sort by login date so that site admins could check out who's
 been on the site. Community-type sites might choose to publicly display a
 list like "Users logged in today."

 When !WordPress is employed as a blog, it's easy to track how active users
 are by how often they comment (or post). However, I've talked to a bunch
 of site owners who use !WordPress differently, requiring users to register
 and log in just to read certain pages -- their users ''never'' comment or
 post, but they have no way to tell what user accounts are being used or
 are abandoned.

 There are plugins such as [http://wordpress.org/extend/plugins/login-
 logger/ Login Logger] that add this functionality, but I'm suggesting
 adding it to core because (a) it's trivial and (b) there's a big advantage
 to having this data live in a standard place so that all users and plugin
 authors can make use of it (vs. having plugins make up their own way to
 store and access this information). For instance, I'm the author of a
 plugin that deletes users after a certain period of inactivity, but I
 don't want my plugin to get into the business of hooking into logins and
 inserting into the database, I just want to make small use of this
 information.

 === Possible cons I can think of ===

 1. This would mean an INSERT or UPDATE to the database on every successful
 login, which could create load/contention issues on very busy sites,
 particularly with MyISAM. I don't believe that writes to the usermeta
 table are frequent enough to be a problem, but it's a possibility.

 2. There may be privacy issues to consider ... personally I think saving
 only last login time (vs. storing all logins) is pretty benign, but I
 thought I'd mention it. I think the average user already expects this sort
 of basic information is stored when they log into a website.

 3. For the above reasons you might prefer to make this an optional
 feature, disabled by default, which would mean adding a checkbox on one of
 the Settings pages. I know reducing clutter on these pages and avoiding
 featuritis are big !WordPress goals, so that's a possible issue. I can
 code it either way, but I think it's simplest and most useful to just add
 the feature and not make it a settings option.

 Thanks for considering my feature request!

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/16791>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list