Rentiva v4.38.0 — Bayi Dizini Sayfası
Rentiva'ya yeni bir Pro özelliği katıldı: herkese açık bayi dizini. Müşterileriniz aktif bayilerinizi tek bir sayfada keşfedebilir — şehre, rozet durumuna ve minimum puana göre filtreleyebilir; en yüksek puanlı, en yeni veya alfabetik olarak sıralayabilir; herhangi bir bayi kartına tıklayarak v4.37.0 ile gelen bayi profil sayfasına gidebilir. Bu sürüm marketplace keşif döngüsünü tamamlıyor.
Yenilikler
/bayiler/dizin sayfası (EN/vendors/) — tek sayfa katalog, sunucu-render, JS gerektirmez, SEO odaklı.- Filtre seti — şehir dropdown (bayi merkezi + araç teslim noktası birleşik), rozet (Doğrulanmış / Yeni), minimum puan (3+ / 4+ / 5).
- Varsayılan sıralama — Puanı en yüksek önde; eşitlikte en yeni üye. En yeni ve alfabetik sıralama opsiyonları da mevcut.
- Üçlü render —
[rentiva_vendor_directory]kısa kodu, Gutenberg bloğu (mhm-rentiva/vendor-directory), Elementor widget'ı. Üçü de aynı kanonik render'ado_shortcode()üzerinden delege eder — çift hat yok. - SEO — Schema.org
ItemList+BreadcrumbListJSON-LD, otomatik SEO eklenti algılayıcısı (Yoast / Rank Math / AIOSEO / SEOPress / The SEO Framework / SmartCrawl). SEO eklentisi yoksa eklenti kendi breadcrumb'ını yayınlar. Filtre argümanları schema'ya yansıtılır (crawler'lar için canonical/render paritesi). - 30 dakikalık transient önbellek — hızlı sayfa yüklemesi, bayi verisi değişince prefix-wildcard SQL ile temizlenir (durum, şehir, güvenilirlik puanı, araç kaydı, yorum durumu, lifecycle, profil güncelleme). Bio ve avatar değişimi bilerek invalidate etmiyor (kasıtlı scope reduction — dizin kartları bunları render etmiyor, gereksiz flush yapardı).
Pro Kilidi
Bayi Dizini bir Pro özelliğidir (vendor_marketplace bayrağı). Lite kullanıcılar /bayiler/ adresinde WordPress 404 görür (dispatch-time kilidi); herhangi bir blok/widget/manuel kısa kod kullanımı boş döner (render-time kilidi). Yükseltme çağrıları /pricing sayfasında ve mevcut fiyatlandırma tablosu kısa kodunda mevcuttur.
Kompakt kart tasarımı
Her bayi kartı şunları gösterir: avatar (v4.37.2'den miras SVG initials fallback), display name, şehir, araç sayısı (tekil/çoğul), rozet etiketi (✓ Doğrulanmış Bayi / Yeni Bayi), puan barı + sayı, "Profili görüntüle →" CTA. Kart tamamen tıklanabilir (Popular Routes v4.34.1 pattern paritesi).
Mobile-first responsive grid
- Desktop (≥1024px): 4 sütun
- Tablet (≥600px): 2 sütun
- Telefon (
<600px): 1 sütun stack + native HTML5<details>filtre sheet (JS gerektirmez)
600px breakpoint v4.37.2 B10 ile aynı (phone-landscape 568px temiz şekilde tek sütuna düşer). Tüm CSS class'ları .mhm-vendor-directory-* namespace'inde scoped — tema/eklenti jenerik class çakışma riski sıfır (.label, .card, .filter-bar, .pagination v4.37.2 B7 dersi gereği yasak).
i18n
_x('vendors', 'URL slug', 'mhm-rentiva') TR'de bayiler'e çevrilir. Filter override mhm_rentiva_vendor_directory_url_base site sahiplerine özel slug imkanı sağlar (örn. dealers, firmalar). Defansif ASCII sanitize + boş fallback. Locale değişimi rewrite rule'larını otomatik flush eder.
~25 yeni EN kaynak string, hepsi TR-çevrili. Geliştiriciler için 5 yeni filter hook:
mhm_rentiva_vendor_directory_url_basemhm_rentiva_vendor_directory_per_pagemhm_rentiva_vendor_directory_empty_messagemhm_rentiva_vendor_directory_page_titlemhm_rentiva_vendor_directory_meta_descriptionmhm_rentiva_vendor_directory_seo_disable(global kapama anahtarı)
Perde arkası
Reviewer agent tarafından bu sürüm öncesi 3 hata yakalanıp kapatıldı:
- Phase 3 spec drift (KRITIK):
VendorProfileProvider::aggregate_rating_for_vendor()mevcut değildi (Profile'da privateaggregate_rating()averageanahtarıyla,avgdeğil). Dizinin test seam'i bug'ı maskeliyordu — production'da rating filter, sort ve kart verisi sessizce 0.0 dönerdi. Yeni public wrapper eklendi (additive, Profile iç değişikliği yok). - Phase 7 dispatch gap (KRITIK):
template_includefilter eksikti — sayfa wrapper'ı hiç servis edilmezdi. Phase 9 wiring'de kapatıldı. - Phase 10 UI bug: Browser smoke test bir
<details>collapse bug'ı yakaladı — filtre dropdown'ları DOM'da render olmuştu ama desktop'ta görünmezdi (width: 0px) çünkü native UA stylesheet kapalı<details>'in çocuklarını gizler.<details open>initial state ile düzeltildi.
Uyumluluk
- WordPress 6.7+
- WooCommerce 8.0+ (mevcut bayi marketplace gereksinimi)
- Elementor 3.20+ (opsiyonel, sadece widget kullanırsanız)
- 6 büyük SEO eklentisi class/constant probe ile temiz birlikte çalışır — mevcut SEO kurulumunuz korunur
Test & metrikler
- 1044 PHPUnit testi (1007 baseline + 37 yeni dizin testi) —
OK, 3289 assertion, 7 skipped - 0 PHPCS hata tüm proje (CI paritesi)
- 8-checkpoint Chrome DevTools MCP browser smoke desktop (1280px) ve mobile (390px) yeşil
