Lesefortschritt:

    Userprofil-Special – Trick #3: Useraktivitäten im Backend als Widget anzeigen

    12. Juni 2026 | functions.php, Word­Press

    Trick # 580 | Dieser Beitrag beinhaltet 701 Wörter. – Geschätzte Lesezeit: ca. 4 Minuten.

    Die Widgets im Word­Press-Backend eignen sich ganz formidabel, um letzte Ereignisse auf der Website darzustellen. Auch Useraktivitäten. Mit dem heutigen Code wird ein benutzerdefiniertes Dashboard-Widget erstellt, das die Login-Aktivitäten Ihrer Word­Press-User übersichtlich darstellt.

    Das Widget kann besonders hilfreich sein, um aktive Benutzer zu identifizieren und potenzielle Probleme wie inaktive Konten zu erkennen.

    Kopieren Sie den vollständigen Code und fügen Sie ihn in die Datei functions.php Ihres aktiven Word­Press-Themes ein – im Backend unter Design/Theme-Datei-Editor:

    // Dashboard-Widget mit Userprofilen erstellen
    function user_activity_dashboard_widget() {
    wp_add_dashboard_widget(
    'user_activity_widget', // Widget-ID
    'Useraktivitäten', // Widget-Titel
    'display_user_activity_widget' // Callback-Funktion
    );
    }
    add_action('wp_dashboard_setup', 'user_activity_dashboard_widget');// Daten für das Widget anzeigen
    function display_user_activity_widget() {
    // Benutzer abrufen
    $users = get_users();
    $user_data = [];// Daten der Benutzer sammeln
    foreach ($users as $user) {
    $last_login = get_user_meta($user->ID, 'last_login', true);
    $login_count = get_user_meta($user->ID, 'login_count', true);
    $first_name = get_user_meta($user->ID, 'first_name', true);
    $last_name = get_user_meta($user->ID, 'last_name', true);$user_data[] = [
    'id' => $user->ID,
    'first_name' => $first_name ? $first_name : '',
    'last_name' => $last_name ? $last_name : '',
    'last_login' => $last_login ? intval($last_login) : 0,
    'login_count' => $login_count ? intval($login_count) : 0,
    ];
    }// Nach letztem Login, Nachname und Vorname sortieren
    usort($user_data, function($a, $b) {
    if ($b['last_login'] <=> $a['last_login']) {
    return $b['last_login'] <=> $a['last_login'];
    }
    if (strcasecmp($a['last_name'], $b['last_name']) !== 0) {
    return strcasecmp($a['last_name'], $b['last_name']);
    }
    return strcasecmp($a['first_name'], $b['first_name']);
    });// Tabelle erstellen
    echo '<table class="striped" style="width:100%; text-align:left; border-collapse: collapse;">';
    echo '<thead>';
    echo '<tr>';
    echo '<th style="padding: 3px;">User</th>';
    echo '<th style="padding: 3px;">Letzter Login</th>';
    echo '<th style="padding: 3px;">Anzahl Logins</th>';
    echo '</tr>';
    echo '</thead>';
    echo '<tbody>';foreach ($user_data as $user) {
    // Zeitzone Europa/Zürich einstellen
    $timezone = new DateTimeZone('Europe/Zurich');
    $last_login = $user['last_login'] ? (new DateTime('@' . $user['last_login']))->setTimezone($timezone) : null;echo '<tr>';
    echo '<td style="padding: 3px;"><a href="' . esc_url(admin_url('user-edit.php?user_id=' . $user['id'])) . '">' . esc_html($user['last_name']) . ' ' . esc_html($user['first_name']) . '</a></td>';
    echo '<td style="padding: 3px;">' . ($last_login ? $last_login->format('d.m.Y H:i') : '-') . '</td>';
    echo '<td style="padding: 3px; text-align: center;">' . $user['login_count'] . '</td>';
    echo '</tr>';
    }echo '</tbody>';
    echo '</table>';
    }// Letzten Login und Login-Anzahl speichern
    function track_user_login($user_login, $user) {
    $user_id = $user->ID;// Letzten Login speichern
    update_user_meta($user_id, 'last_login', time());// Login-Anzahl erhöhen
    $login_count = get_user_meta($user_id, 'login_count', true);
    $login_count = $login_count ? intval($login_count) + 1 : 1;
    update_user_meta($user_id, 'login_count', $login_count);
    }
    add_action('wp_login', 'track_user_login', 10, 2);
    

    Das Widget erscheint sofort im Dashboard Ihres Word­Press-Backends. Es bietet eine einfache und effektive Möglichkeit, die Useraktivitäten auf dee Website zu überwachen und inaktive User rasch zu erkennen. Dank des direkten Links auf das jeweilige Userprofil, lässt sich letzteres auch einfach administrieren.

    Werbung

    Keine Inhalte gefunden.

    Werbung

     

    Pin It on Pinterest

    Share This