<?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;
} Kullanıcı Toplam Online Süresini Hesaplama
5
●120
- 10-06-2023, 19:32:22Merhabalar 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
- 10-06-2023, 19:39:35öneriniz için teşekkürlerd3nnis adlı üyeden alıntı: mesajı görüntüle
- 11-06-2023, 11:50:13teklifinizi pm olarak bekliyorum.OneGui adlı üyeden alıntı: mesajı görüntüle
- 11-06-2023, 18:24:00imzadan ulaşırsanız teklif verebilirizOrgeneral adlı üyeden alıntı: mesajı görüntüle