Ana içeriğe geç

MHM Rentiva v4.26.2: Tam Kaldırma Temizliği ve CLI Bootstrap Güçlendirmesi

· 3 dakikalık okuma
MaxHandMade
Maintainer

v4.26.2, eklenti kaldırıldığında arkada kalan tüm tabloların silinmesini sağlıyor, wp-cli bootstrap sırasındaki fatal hatayı gideriyor ve şema migration'ların artık sürüm değişikliğinde otomatik çalışmasını garantiliyor. Üç düzeltme de üretim ortamlarındaki sessiz sorunları hedefliyor.

🧹 Kaldırma Temizliği — Artık 27 Tablonun Hepsi

Önceden eklenti "verileri temizle" seçeneği ile silindiğinde 14 alt sistem tablosu veritabanında yetim kalıyordu: ledger, key_registry, commission_policy, payout_audit, tenants, usage_metrics ve eski alert/payment alt sistemlerine ait artık kullanılmayan tablolar. Bu v4.26.2 ile tamamen çözüldü.

Yapılan iyileştirmeler:

  • Tam liste: 27 özel tablonun tamamı kaldırma sırasında siliniyor
  • Pattern güvenlik ağı: Listede olmayan ama mhm_rentiva_* önekiyle başlayan herhangi bir yetim tablo da otomatik yakalanıp siliniyor — gelecekte eklenen tablolar için güvence
  • Kurtarma tablosu temizliği: DatabaseCleaner tarafından oluşturulan postmeta_backup_invalid_* geçici tabloları da kaldırma sırasında temizleniyor
  • Tek kaynak prensibi: Silme listesi ve istatistik sayacı artık aynı kaynaktan okuyor — sayaç ile gerçek temizlik birbirinden uzaklaşamaz
  • Savunma mekanizmaları: uninstall.php ve taksonomi temizleme adımı artık bozuk bir ayar kaydı veya eksik taksonomi nedeniyle sessizce durmuyor — hata yakalanıyor ve kalan adımlar çalışmaya devam ediyor

Doğrulama: DemoSeed Docker ortamında v4.26.2 kaldırma testi → 0 tablo, 0 post, 0 ayar artık geride kalıyor. Tam temiz kaldırma garantili.

🔧 CLI Bootstrap Fatal Error Düzeltmesi

Önceden belirli koşullarda wp-cli komutları TypeError veya is_user_logged_in() undefined function hatasıyla çöküyordu. Kök nedeni iki yerde yatıyordu:

  • SettingsCore::get() ve has() bir ayar kaydının dizi olmadığı durumda TypeError fırlatıyordu
  • AdvancedLogger::log() WordPress tam yüklenmeden (örneğin early bootstrap'te) çağrıldığında is_user_logged_in()'i çağırıyordu ama bu fonksiyon o aşamada tanımlı değildi

Çözüm:

  • SettingsCore::get()/has() artık dizi olmayan bir ayar değerini tolere ediyor ve güvenli varsayılana düşüyor
  • AdvancedLogger::log() plugins_loaded hook'u çalışmadan önce çağrıldığında erken return ediyor — log atlanır ama bootstrap çökmez

Etkisi: wp plugin activate mhm-rentiva, wp mhm-rentiva * subkomutları ve diğer wp-cli akışları artık bozuk bir ayar kaydı ya da early-bootstrap log denemesi ile çökmüyor.

🔄 Otomatik Şema Migration'ları

v4.26.2 ile şema migration'ları artık eklenti dosya sürümü değiştiğinde otomatik çalışıyor, WordPress aktivasyon hook'u çağrılmasa bile. Bu; manuel ZIP yükleme, FTP ile güncelleme ve wp-cli plugin update akışlarını kapsar.

Önceki durum: Yeni tabloları oluşturmak için eklentiyi pasifleştirip tekrar etkinleştirmek gerekiyordu. Kullanıcıların çoğu bunu bilmediğinden "yeni özellik çalışmıyor" raporu geliyordu.

Yeni durum: DB_VERSION sabiti değişir değişmez migration'lar sessizce ve tek seferlik çalışır. Aktivasyon hook'u hala destekleniyor — sadece artık zorunlu değil.

📋 Değişiklik Kaydı

TürAçıklama
🧹 KaldırmaTüm 27 özel tablo (ledger, key_registry, commission_policy, payout_audit, tenants, usage_metrics + eski alt sistem tabloları)
🛡️ KaldırmaPattern tabanlı güvenlik ağı (mhm_rentiva_* öneki)
🧹 Kaldırmapostmeta_backup_invalid_* kurtarma tabloları
🔧 KaldırmaSilme listesi ve istatistik sayacı tek kaynaktan
🛡️ Kaldırmauninstall.php ve taksonomi temizliğinde savunma mekanizmaları
🔄 GüncellemeŞema migration'ları sürüm değişikliğinde otomatik çalışıyor
🐛 DüzeltmeSettingsCore::get()/has() dizi olmayan değerleri tolere ediyor
🐛 DüzeltmeAdvancedLogger::log() WordPress yüklenmeden güvenli dönüş

📁 Değiştirilen Dosyalar

  • uninstall.php (defensive is_array guard + tam tablo listesi)
  • src/Admin/Core/Utilities/DatabaseCleaner.php (27 tablo + pattern wildcard)
  • src/Admin/Core/Utilities/DatabaseMigrator.php (otomatik migration tetikleme)
  • src/Admin/Core/SettingsCore.php (non-array toleransı)
  • src/Admin/Core/Logging/AdvancedLogger.php (plugins_loaded guard)
  • mhm-rentiva.php (versiyon güncelleme)

⬆️ Güncelleme Notu

v4.26.2 tamamen geriye dönük uyumlu bir patch sürümüdür — DB şemasında yeni tablo, kolon veya veri değişikliği yoktur. Güncelleme sonrası ek bir işlem gerekmez. Eklentiyi normal yollarla güncellemeniz yeterli:

  • WordPress admin → Eklentiler → Güncelle
  • Veya wp plugin update mhm-rentiva --allow-root
  • Veya manuel ZIP yükleme (artık otomatik migration tetiklenir)

Daha fazla bilgi için Doküman Sayfamızı ziyaret edin.