複数ユーザー運営時に、プラグインなしでユーザーの最終ログイン日時を記録・表示する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

管理者として「誰が最後にいつログインしたのか」を把握したい場面は多くあります。
例えば、スタッフや会員制サイトのユーザーの活動状況を確認したり、長期間ログインしていないユーザーを検出したりするケースです。

そこで、プラグイン「When Last Login」などを使わずに、ユーザーがログインした時刻を記録し、管理画面の「ユーザー一覧」にその日時を表示します。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。

// 管理画面一覧にカラムを追加
add_filter('manage_users_columns', function ($columns) {
  $columns['last_login'] = '最終ログイン';

  return $columns;
});


// 管理画面一覧のカラムにデータを表示
add_filter('manage_users_custom_column', function ($value, $column_name, $user_id) {
  if ($column_name !== 'last_login') {
    return $value;
  }

  $last_login = get_user_meta($user_id, 'my_last_login', true);
  if (!$last_login) {
    return '未ログイン';
  }

  return $last_login;
}, 10, 3);


// ログイン時に現在時刻を保存
add_action('wp_login', function ($user_login, $user) {
  update_user_meta($user->ID, 'my_last_login', current_time('mysql'));
}, 10, 2);

さいごに

今回紹介した方法を使えば、ユーザーの最終ログイン時刻を記録し、管理画面の「ユーザー一覧」に表示することができます。
サイトの運用状況を把握したい場合や、アクティブユーザーの管理に活用したい場合に、ぜひこの方法を取り入れてみてください。

タイトルとURLをコピーしました