Rentiva v4.39.0 — Müşteriler Sayfası React SPA (Faz 2)
· 2 dakikalık okuma
Eski jQuery / WP_List_Table tabanlı Müşteriler admin sayfası tarihe karıştı. v4.39.0, özel bir REST API ile desteklenen tam bir React SPA ile değiştiriyor — canlı arama, sıralanabilir sütunlar, kayar detay paneli ve toplu silme, hepsi sayfa yenilemeden.
Yenilikler
Müşteriler Sayfası — React SPA Geçişi
Bu, PHP render'dan React SPA'ya geçen ikinci büyük admin sayfası (Faz 1 Dashboard'un ardından Faz 2).
Yeni REST Endpoint'leri
GET /mhm-rentiva/v1/customers— arama, sıralama ve sayfa başına kayıt kontrolüyle sayfalandırılmış müşteri listesiGET /mhm-rentiva/v1/customers/{id}— tam müşteri detayı (ad, e-posta, telefon, adres, rezervasyon istatistikleri, ilk/son rezervasyon)DELETE /mhm-rentiva/v1/customers/bulk—manage_optionskorumasıyla ID dizisine göre toplu silme
Yeni React Bileşenleri
CustomersPage— arama, sayfalama ve panel durumunu birbirine bağlayan kök durum orkestratörüCustomerTable—WP_List_Table'ın yerini alan sıralanabilir tablo; sütunlar: Ad, E-posta, Rezervasyonlar, Toplam Harcama, Son Rezervasyon, Kayıt TarihiCustomerDetailPanel— satıra tıklandığında açılan kayar panel; Düzenle ve Rezervasyonları Görüntüle hızlı bağlantılarıyla tam profil gösterimiFilterBar— 300 ms geciktirmeli canlı arama girişi ve toplu silme tetikleyicisi
Kaldırılan Eski Kod
CustomersListTable.php— silindiCustomersListPage.php— silindicustomers.js,customers-calendar.js,customers.css,simple-calendars.css— silindi
Diğer Değişiklikler
CustomersOptimizer;sort_by/sort_dirparametreleri ve güvenliORDER BYenjeksiyonu için PHP taraflı sütun beyaz listesiyle genişletildi- CSV Dışa Aktarma hâlâ
admin-post.phpüzerinden akış olarak çalışıyor — indirme akışı SPA ile birlikte korunuyor CustomersPage::register()artıkrest_api_init'e doğrudan bağlanmıyor; rotalar,admin_menutetiklenmeden önce kullanılabilir olması içinPlugin.phpüzerinden kaydoluyor
Testler
13 yeni PHPUnit entegrasyon testi (10 REST uç nokta testi + 3 dışa aktarıcı testi). Tam süit: 1115 test, 3425 assertion. PHPCS: 0 hata.
