Ana içeriğe geç

Rentiva v4.38.0 — Bayi Dizini Sayfası

· 4 dakikalık okuma
MaxHandMade
Maintainer

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'a do_shortcode() üzerinden delege eder — çift hat yok.
  • SEO — Schema.org ItemList + BreadcrumbList JSON-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_base
  • mhm_rentiva_vendor_directory_per_page
  • mhm_rentiva_vendor_directory_empty_message
  • mhm_rentiva_vendor_directory_page_title
  • mhm_rentiva_vendor_directory_meta_description
  • mhm_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ı:

  1. Phase 3 spec drift (KRITIK): VendorProfileProvider::aggregate_rating_for_vendor() mevcut değildi (Profile'da private aggregate_rating() average anahtarıyla, avg değ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).
  2. Phase 7 dispatch gap (KRITIK): template_include filter eksikti — sayfa wrapper'ı hiç servis edilmezdi. Phase 9 wiring'de kapatıldı.
  3. 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

Sürümü indirin

GitHub'dan v4.38.0 ZIP indirin.