/** * Kullanicinin AKTIF bir yasagi var mi? Yoksa null, varsa * array( 'reason' => ..., 'until_ts' => int|null ) doner. * * HATA (2026-09-19 tespit): Yasak iki yerde birden tutuluyor — * starrin_chat_moderation TABLOSU (banned_until ile, suresi var) ve * starrin_global_ban KULLANICI META'si (surenin kendisi degil, "1 hours" * gibi bir metin + baslangic tarihi). Yorumu engelleyen kod yalnizca * meta'ya bakiyor ve SUREYI HIC DEGERLENDIRMIYORDU: 3 ay once verilmis * 1 saatlik bir yasak sonsuza kadar yorum yazmayi engelliyordu. Ustelik * moderasyon yonetim sayfasi sadece TABLOYU listeledigi icin bu kayit * arayuzde gorunmuyor, yoneticinin kaldirmasi da mumkun degildi. * * Kural: TABLO otoritedir. Eklenti yukluyse tablonun dedigi gecerlidir ve * tablo "yasak yok" diyorsa meta kalintisi temizlenir. Eklenti yoksa * meta'ya duselim ama bu sefer suresini hesaplayarak. */ function starlab_get_active_ban( $user_id ) { $user_id = (int) $user_id; if ( $user_id <= 0 ) { return null; } if ( class_exists( 'StarRin_Chat_Moderation' ) ) { $mod = StarRin_Chat_Moderation::get_user_status( $user_id, 0 ); $now = time(); if ( $mod && $mod->action === 'ban' ) { $until = ! empty( $mod->banned_until ) ? strtotime( $mod->banned_until . ' UTC' ) : null; if ( $until === null || $until > $now ) { return array( 'reason' => $mod->reason, 'until_ts' => $until, ); } } // Tabloda aktif yasak yok — meta kalintisini temizle ki bir daha // kimseyi sessizce engellemesin. delete_user_meta( $user_id, 'starrin_global_ban' ); delete_user_meta( $user_id, 'starrin_ban_message' ); return null; } // Eklenti devre disi: meta'ya duselim, ama suresini DEGERLENDIREREK. $ban = get_user_meta( $user_id, 'starrin_global_ban', true ); if ( empty( $ban ) || ! is_array( $ban ) ) { return null; } $duration = isset( $ban['duration'] ) ? trim( (string) $ban['duration'] ) : ''; $banned_at = isset( $ban['banned_at'] ) ? strtotime( $ban['banned_at'] ) : 0; // Sure verilmisse bitis anini hesapla; verilmemisse kalici yasaktir. $until = null; if ( $duration !== '' && $banned_at > 0 ) { $calculated = strtotime( '+' . $duration, $banned_at ); if ( $calculated ) { $until = $calculated; } } if ( $until !== null && $until <= time() ) { delete_user_meta( $user_id, 'starrin_global_ban' ); delete_user_meta( $user_id, 'starrin_ban_message' ); return null; } return array( 'reason' => isset( $ban['reason'] ) ? $ban['reason'] : 'Kural ihlali', 'until_ts' => $until, ); } Kısa Bir Bakım Arası

Kısa Bir Bakım Arası

Hemen Geri Döneceğiz