User Login History

July 10, 2024

User Login History Plugin

Helps you to know your website's visitors by tracking their login related information like login/logout time, country, browser and many more.

The plugin helps you to track any visitor\’s login details with the following attributes:

  1. Login – Login Date-Time
  2. Logout – Logout Date-Time
  3. Last Seen – Last Seen Date-Time
  4. Login Status – Logged in/Logged out/Failed
  5. Online Status – Online/Offline/Idle
  6. Session Duration – How long the user stayed on your website per session.
  7. User ID
  8. Username
  9. Current Role
  10. Old Role – The role while user gets logged in into your website.
  11. Browser
  12. Operating System
  13. IP Address
  14. Country Name and Country Code (Based on IP Address)
  15. Timezone (Based on IP Address)
  16. Mobile (Pro Feature) – Whether the user loggedin with a mobile (e.g. tablet and mobile phone) device.
  17. Proxy IP (Pro Feature) – Whether the user loggedin from a proxy IP.

Features

The User Login History Free Version plugin has all the basic features that will help you to know your website visitors. The User Login History Pro Version plugin has some more premium and useful features along with all the basic features.

  1. AUTO LOGOUT (Pro Feature) – Automatically logout idle users every ‘X’ minute.
    You can also specify roles.
    This feature is built on WordPress Cron Job.
  2. IP ADDRESS CONTROL (Pro Feature) – Allows you to control of masking and hiding of user’s IP address.
  3. EMAIL ALERT (Pro Feature) – Allows you to get notified via email for success/failed login.
    You can also specify roles and modify email templates.
  4. AUTO DELETE OLD RECORDS (Pro Feature) – Automatically delete the records older than ‘X’ days.
    You can also specify the roles.
    This feature is built on WordPress Cron Job.
  5. TRACK SPECIFIC ROLES (Pro Feature) – Allows you to track specific roles only.
  6. CSV SEPARATOR (Pro Feature) – Allows you to enter a CSV separator for CSV export.
  7. REPORT – TIMESHEET (Pro Feature) – Generate a timesheet report
  8. REPORT – NO LOGIN LIST (Pro Feature) – Generate a report of users who have not login for a given date range
  9. REPORT – LOGIN DEVICE (Pro Feature) – Generate report of login count based on IP address
  10. LOGIN TIME TRACKER – Tracks the date and time of user’s login, logout, last seen, etc.
  11. LOGIN STATUS TRACKER – Tracks user’s login status to check if the user is logged in, logged out, failed, etc.
  12. ONLINE STATUS TRACKER – Tracks user’s online status to check if the user is online, idle or offline.
  13. USER INFORMATION TRACKER – Tracks user’s old role, current role, username, etc.
  14. DEVICE INFORMATION TRACKER – Tracks user’s operating system and browser.
  15. GEO LOCATION TRACKER – Tracks user’s timezone and country based on IP address.
  16. ADVANCED SEARCH FILTER – Filters the records.
  17. CSV EXPORTER – Exports the records in csv format.
  18. CUSTOMIZABLE SHORTCODE – Renders the records on front-end.
  19. PREFERABLE TIMEZONE (DEPRECATED! Will be removed in 3.0) – You can select your preferred timezone to be used for the listing table.
  20. MULTISITE NETWORK – On the network admin area, you can see the listing table which shows all the records fetched from all the blogs of the current network.

Translations

You can download the language files from here.

Do you want to translate this plugin to another language?

I recommend using POEdit or if you prefer to do it straight from the WordPress admin interface use Loco Translate.
When you’re done, post your file on this issue.
.
You can also translate the plugin online.

How to use the plugin?

  1. To see all the tracked records in admin, click on the plugin menu shown in the left sidebar.

  2. To see all the tracked records of current logged in users in frontend, use the following shortcode:

Basic Usage of Shortcode:

In your template file:

<?php echo do_shortcode('[user_login_history]'); ?> 

In your content:

[user_login_history] 

Advanced Usage of Shortcode:

In your template file:

<?php echo do_shortcode("[user_login_history limit='20' reset_link='custom-uri' columns='ip_address,time_login' date_format='Y-m-d' time_format='H:i:s']"); ?> 

In your content:

[user_login_history limit='20' reset_link='custom-uri' columns='ip_address,time_login' date_format='Y-m-d' time_format='H:i:s'] 

Shortcode Parameters

You can use the shortcode to display the login list of the current user. It does not display the login list of other users.
Here is the list of all the parameters that you can use in the shortcode. All the parameters are optional.

  1. title – Title of the listing table. Default is: empty string

  2. limit – Number of records per page. Default is: 20

  3. reset_link – Custom URI of the listing page. For the input “my-login-history”, it will render a reset link with the following URL:
    www.example.com/my-login-history
    Default is the full permalink of the current post or page.

  4. date_format – A valid date format. Default is:

    Y-m-d

  5. time_format – A valid time format. Default is:

    H:i:s

  6. show_timezone_selector – Whether you want to show timezone selector or not. Any value other than “true” will be treated as “false”. Default is:
    true

  7. roles (Pro Feature):
    It allows you to set role(s) in the shortcode parameter so that you can see the login list of other users who belong to the role(s).

    [user_login_history roles=’administrator, editor’]

  8. columns – List of column keys used to render columns on the listing table. Default keys are:

    operating_system, browser, time_login, time_logout

  9. Available Column Keys:

    user_id, username, role, old_role, ip_address, country_name, browser, operating_system, timezone, user_agent, duration, time_last_seen, time_login, time_logout, login_status

Geo Tracking

The plugin uses a free third party service to detect country and timezone based on IP address. Many projects are using this free service due to which sometimes the server of the service provider becomes slow. This may affect the login functionality of your website. Hence it is recommended that you do not enable this functionality unless you have paid service or reliable service. If you have a paid service, you can contact us to integrate it.

Login Statuses

  1. Logged in – If the user gets logged in successfully.

  2. Logged out – If the user clicks on logout button and gets logged out successfully.

  3. Failed – If the user enters invalid credentials.

  4. Blocked (DEPRECATED! Will be removed in 3.0) – This is used for the multisite network. By default, a user can login to any blog and then WordPress redirects to the blog on which the user is associated. The plugin saves login info at the blog on which the user logged in but cannot not save the information of the blog on which WordPress redirects the user. You can prevent this behavior by using the plugin setting. Please note that we already removed this status from the pro version plugin but not from the free version yet.

  5. Unknown (DEPRECATED! Will be removed in 3.0) – Since we have added a new column “Login Status” in the version 1.7.0, its value will be empty in the database table after upgrading to 1.7.0. To filter such records, you can use this status.

Note – In case, a user log in with “Remember Me” and then closes his browser without doing logout, it will show the login status as “Logged in”.

Bug Fixes

If you find any bug, please create a topic with a step by step description to reproduce the bug.
Please search the forum before creating a new topic.

Keywords

user log, log, logger, detector, tracker, membership,
register, sign up, admin, subscriber, editor, contributor, geo location,
profile, front end registration, manager, report, statistics, activity, user role editor

Installation

  1. Upload the plugin files to the /wp-content/plugins/user-login-history directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. (Optional) Use the Settings->User Login History screen to configure the plugin.

Screenshots

  1. User login list table for backend

    User login list table for backend

  2. Screen options to customize the user login list table

    Screen options to customize the user login list table

  3. Advanced search form to filter the records of user logins

    Advanced search form to filter the records of user logins

  4. Settings - Basics settings

    Settings - Basics settings

  5. Settings - Advanced settings

    Settings - Advanced settings

  6. Settings - Preferred timezone setting on user profile page

    Settings - Preferred timezone setting on user profile page

  7. Shortcode - User login list table for frontend

    Shortcode - User login list table for frontend

FAQ

Can this plugin track the info of guest users?

No.

Is it compatible with WordPress multisite network?

Yes.

Where to see login list in admin?

After activating the plugin, just re-login and then click on “User Login History” menu on the left sidebar to see the login list.

What does the setting “online/idle minutes” actually do?

There is a “Last Seen” column in the admin listing page.
There you will see a circle with different colors:
red is for offline users
grey is for idle users
green is for online users

You can change its settings.

The default setting is as follows:

online: 2 min
idle: 30 min

It means that:
1)the column “last seen” will show green color for the users who are active for 0-2 minutes.
2)the column “last seen” will show grey color for the users who are inactive for 2-30 minutes.
3)the column “last seen” will show red color for the users who are inactive for at-least 30 minutes.

Changelog

2.1.5 (10th July 2024)

  • Added a new submenu for more plugins.

2.1.4 (5th May 2024)

  • Implemented a new php library for csv export – https://csv.thephpleague.com

2.1.3 (10th November 2023)

  • Fixed a few PHP 8.2 deprecation notices like Creation of dynamic property ExampleNamespace\ExampleClass::$exampleVariable is deprecated

2.1.2 (05th October 2023)

  • Code refactoring for the settings page
  • Removed the role filter to improve the sql query performance

2.1.1 (21st May 2023)

2.1.0 (17th February 2021)

2.0.1 (10th February 2021)

  • Code refactoring.
  • Added Buy Pro Version link.

2.0.0 (10th June 2020)

  • Improved UI/UX of the listing table in admin panel.
  • Code refactoring.
  • Minor bugs fixes.

1.7.4(3rd April, 2020)

  • Fixed some permission issue on dashboard menu
  • Implemented horizontal scroll bar on the listing table in backend
  • Replaced role key with role name on the listing table

1.7.3(25th August, 2019)

  • Fixed index size limit issue

1.7.2(18th August, 2019)

  • Fixed some performance issues

1.7.1(16th March, 2019)

  • Fixed SQL bug in order by clause

1.7.0(4th June, 2018)

  • Compatible with Multisite Network – Now this plugin supports WordPress Multisite with multi-networks and multi-blogs.
  • Added the column Login Status – This is used to check whether the user is logged in, logged out, failed login or blocked login.
  • Added the option Last Seen Time in the filter forms.
  • Added the column Super Admin – This is used only for multisite network.
  • Deprecated the shortcode [user-login-history].
  • Added new shortcode [user_login_history] with customizable parameters.
  • Date range validation on the filter forms.
  • Date and Time format of the user login listing table can be changed from the general settings.
  • Improved design of the listing tables.

Details

  • Version: 2.1.5
  • Active installations: 20,000
  • WordPress Version: 5.0.0
  • Tested up to: 6.5.5
  • PHP Version: 8.1.2

Ratings


5 Stars
4 Stars
3 Stars
2 Stars
1 Stars