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.

6.0.0 öncesinde yazıldı

Bu yazı, 6.0.0'dan önce çıkmış bir sürümün kaydıdır; 6.0.0 eklentinin içerik tiplerini, taksonomilerini, ayarlarını, meta anahtarlarını ve hook'larını yeniden adlandırdı. Aşağıdaki tanımlayıcılar o sürümlerin gerçekten kullandığı adlardır ve bilerek öyle bırakılmıştır. Güncel adlar ve dönüşüm tablosu için 6.0.7 sürüm yazısına bakın.

🧹 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.