Merhabalar WordPress için bir toplam online süre hesaplama eklentisi yazmaya çalıştım.son_giris_zamani ve son_cikis_zamanini veritabanına kayıt ediyorum ve daha sonra her çıkış yaptığında toplam_suresi verisini güncelleme çalışıyorum varolan verinin üzerine toplyarak gidecek bende kullanının tüm zamanlar toplam aktif kalma süresini görebileceğim fakat bir türlü toplam_suresi verisi güncellenmiyor Eklenti kodlarım aşağıdaki gibidir

<?php
/*
Plugin Name: Kullanıcı Giriş Süresi
Plugin URI: https://www.example.com/
Description: WordPress kullanıcılarının giriş sürelerini takip etmek için özel bir eklenti.
Version: 1.0
Author: Your Name
Author URI: https://www.example.com/
License: GPL2
*/

// Admin panelinde Kullanıcılar menüsüne altında yeni bir sayfa ekleyelim
function kullanici_suresi_menu_ekle() {
    add_users_page( 'Kullanıcılar', 'Kullanıcılar', 'read', 'kullanici-suresi-sayfa', 'kullanici_suresi_sayfa_icerik' );
}
add_action( 'admin_menu', 'kullanici_suresi_menu_ekle' );

// Kullanıcılar sayfasındaki tablo içeriği
function kullanici_suresi_sayfa_icerik() {
    $users = get_users();
    ?>
    <div class="wrap">
        <h1>Kullanıcı Giriş Süreleri</h1>
        <table class="wp-list-table widefat fixed striped">
            <thead>
                <tr>
                    <th>Kullanıcı Adı</th>
                    <th>İsim Soyisim</th>
                    <th>E-posta Adresi</th>
                    <th>Toplam Süresi (Dakika)</th>
                    <th>Online Süresi (Dakika)</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ( $users as $user ) : ?>
                    <tr>
                        <td><?php echo $user->user_login; ?></td>
                        <td><?php echo $user->display_name; ?></td>
                        <td><?php echo $user->user_email; ?></td>
                        <td><?php echo kullanici_giris_suresi_hesapla( $user->ID ); ?></td>
                        <td><?php echo kullanici_online_suresi_guncelle( $user->ID ); ?> Dakika</td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
    <?php
}

// Kullanıcının giriş ve çıkış zamanlarını kaydetmek için fonksiyonlar
function kullanici_giris_zamani_kaydet( $user_login, $user ) {
    $user_id = $user->ID;
    update_user_meta( $user_id, 'son_giris_zamani', current_time( 'mysql' ) );
}

add_action( 'wp_login', 'kullanici_giris_zamani_kaydet', 10, 2 );



function kullanici_cikis_zamani_kaydet() {
    $cur_cikis = current_time('mysql');
    $userinfo = wp_get_current_user();
    update_user_meta( $userinfo->ID, 'son_cikis_zamani', $cur_cikis );
}
add_action('clear_auth_cookie', 'kullanici_cikis_zamani_kaydet', 10);


function kullanici_giris_suresi_hesapla( $user_id ) {
    $login_time = get_user_meta( $user_id, 'son_giris_zamani', true );
    $logout_time = get_user_meta( $user_id, 'son_cikis_zamani', true );

    if ( $login_time && $logout_time ) {
        $diff = $logout_time  -  $login_time ;
        $minutes = round( $diff / 60 );

        // Mevcut toplam süreyi al
        $total_time = get_user_meta( $user_id, 'toplam_suresi', true );

        // Eski süreyi yeni süre ile topla
        $total_time += $minutes;

        // Toplam süreyi güncelle
        update_user_meta( $user_id, 'toplam_suresi', $total_time );
      
        return $total_time;
    }

    return 0;
}

// Kullanıcının online süresini güncellemek için fonksiyon
function kullanici_online_suresi_guncelle( $user_id ) {
    $login_time = get_user_meta( $user_id, 'son_giris_zamani', true );
    $current_time = current_time( 'mysql' );

    if ( $login_time ) {
         $diff = strtotime( $current_time ) - strtotime( $login_time );
         $minutes = round( $diff / 60 );

        // Online süreyi güncelle
        update_user_meta( $user_id, 'online_suresi', $minutes );

        return $minutes;
    }

    return 0;
}