WC Korkmaz Contract — WordPress 7.1.3 / WooCommerce 11.2.1 uyumluluk kontrolü

25 Ekim 2026 tarihinde WordPress'in resmi sürüm API'sinden güncel kararlı sürümün 7.1.3 olduğu doğrulandı. Resmi WordPress 7.1.3 ve WooCommerce 11.2.1 paketleriyle, mevcut sitelerden ayrı bir geçici kurulum oluşturuldu. Testlerde Türkçe `tr_TR`, Twenty Twenty-Five teması, MySQL 8.0.35 ve HPOS sipariş depolaması kullanıldı. Gerçek tarayıcı testleri PHP 8.2.30 ve başsız Google Chrome ile gerçekleştirildi.

Bulunan ve düzeltilen ek sorunlar

1. Önceki derlemeye eklenen `wc-blocks-data` bağımlılık adı hatalıydı. WooCommerce gerçek script kaydında `wc-blocks-data-store` kullanıyor. WordPress 7.1.3 tam kurulumunda kayıtlı olmayan bağımlılık uyarısı görüldü ve scriptin yüklenmesini engelleyebildiği doğrulandı. `scripts/build.mjs` eşlemesi düzeltildi, frontend asset dosyası yeniden üretildi. Yeni gerçek entegrasyon testi, yalnızca beklenen ada bakmak yerine bildirilen her bağımlılığın WordPress script kayıtlarında gerçekten bulunmasını denetliyor.

2. Eski PHP otomatik ekleme işleminin oluşturduğu boş, kendiliğinden kapanan sözleşme blokları editörde geçersiz sayılıyordu. `assets/js/blocks/editor.jsx` içine bu eski kayıt biçimi için ayrıca bir `deprecated` tanımı eklendi. Gerçek WordPress editöründe `isValid: true` doğrulandı; blok resmi editör API'siyle taşınıp kaydedildi. Kaydedilen sıra ön yüzde de korundu. Editör JavaScript'i ve asset sürümü yeniden üretildi.

3. İzole PHP regresyon testi yeni WordPress'in `compat.php` polyfill'lerini yükleyecek şekilde güncellendi. PHP 8.5'te gereksiz/deprecated olan `ReflectionMethod::setAccessible()` çağrısı testten kaldırıldı. Bunlar test altyapısı değişiklikleridir.

4. `readme.txt` içindeki `Tested up to` değeri gerçek test sonucu doğrultusunda `7.1.3` yapıldı. Değişiklikler önce `Unreleased` bölümünde toplandı; kararlı sürüm hazırlığında `2.4.12` bölümüne taşındı.

Gerçek tarayıcı ve HTTP testleri

- Blok ödeme sayfasında yalnızca bir sözleşme onay alanı görüldü; DOM sırası Sipariş Ver butonundan önceydi.
- “Okudum ve kabul ediyorum.” ve zorunlu kabul hata mesajı Türkçe görüntülendi.
- Onay verilmeden gönderim denendi: Türkçe doğrulama hatası gösterildi ve checkout POST isteği gönderilmedi.
- Onay verilip geri alındı: gönderim tekrar engellendi.
- Sözleşme modalı açıldı; müşteri yer tutucularının doldurulduğu doğrulandı ve modal kapatıldı.
- İstemci onaylı görünürken gerçek Store API isteğindeki kabul değeri `0` olarak değiştirildi. Sunucu HTTP 400 ve `korkmaz_contract_not_approved` koduyla reddetti.
- Gerçek kabul değeri `1` ile yerel havale siparişi oluşturuldu; Store API HTTP 200 döndürdü ve sipariş `on-hold` durumuna geçti. Harici ödeme sağlayıcısına bağlanılmadı.
- Klasik checkout'ta Türkçe onay alanı Sipariş Ver butonundan önce görüldü. Onaysız istek ve hatalı sözleşme nonce'u sunucuda reddedildi. Geçerli onay ve nonce ile yerel havale siparişi tamamlandı.
- Blok ve klasik siparişlerde iki sözleşme metni gerçek sipariş meta alanlarına kaydedildi; müşteri adı yer tutuculara işlendi. Oluşturulan iki PDF'nin de dosya varlığı ve `%PDF-` başlığı doğrulandı.
- Müşterinin geçerli erişim bilgileriyle iki PDF de HTTP 200 / `application/pdf` olarak indirildi. Hatalı sipariş anahtarı veya nonce ile erişim HTTP 403 olarak reddedildi.
- Gerçek WordPress editöründe eski boş sözleşme bloğu açıldı, taşındı ve kaydedildi. Sözleşme bloğu Terms bloğunun önüne taşındığında ön yüz aynı sırayı korudu; Actions bloğu yerinde kaldı.
- Eklenti ayar ekranı HTTP 200 ile açıldı ve zorunlu onay ayarı işaretli kaldı.
- Test kurulumunda eklenti devre dışı bırakılıp yeniden etkinleştirildi. Öncesi/sonrası karşılaştırılan 12 sözleşme/ayar değeri aynı kaldı.
- Kontrol edilen frontend, editör ve ayar ekranlarında yakalanan JavaScript çalışma zamanı hata listeleri boştu. Son düzeltmelerden sonra ayrı bir WordPress debug günlüğü kullanıldı; son doğrulama koşusunda uyarı veya hata kaydı oluşmadı.

WooCommerce Blocks, kendi standart akışında `checkout-draft` kayıtları oluşturabilir. Kabul testi; onaysız isteğin ödeme/sipariş tamamlama adımını geçmediğini ve tamamlanmış/onaylı siparişe dönüşmediğini doğrular.

Otomatik test matrisi

| Ortam | Gerçek WordPress/WooCommerce entegrasyonu | PHP syntax |
| --- | --- | --- |
| PHP 8.1.29 + WP 7.1.3 + WC 11.2.1 | 45 kontrol başarılı | 27 dosya başarılı |
| PHP 8.2.30 + WP 7.1.3 + WC 11.2.1 | 45 kontrol başarılı | 27 dosya başarılı |
| PHP 8.4.4 + WP 7.1.3 + WC 11.2.1 | 45 kontrol başarılı | 27 dosya başarılı |
| PHP 8.5.9 + WP 7.1.3 + WC 11.2.1 | 45 kontrol başarılı | 27 dosya başarılı |

Gerçek entegrasyon kontrolleri blok kaydını/render callback'ini, tüm script bağımlılıklarını, WordPress'in gerçek JSON/MO çeviri yüklemesini, Store API şemasını, üç ek kimlik/vergi alanının resmi API ile kaydını, kabul zorunluluğunu, WordPress KSES temizliğini ve gerçek klasik checkout nonce doğrulamasını kapsıyor. WordPress/WooCommerce nesneleri bu testlerde dublör değildir.

Ek olarak `npm test` ile 6 JavaScript/React testi başarılı oldu. Gerçek WordPress parser/serializer/çeviri fonksiyonlarını kullanan 42 izole PHP regresyon kontrolü WordPress 7.1.3 üzerinde PHP 8.2 ve 8.5 ile geçti. Bu ikinci test grubunda veritabanı ve sipariş nesneleri test dublörleridir.

PHP 8.5 ile kurulu eski WP-CLI'nin renkli çıktı yardımcı kodunda `null array offset` deprecation uyarıları görüldü. Kaynak WP-CLI aracıdır. Aynı entegrasyon testi WordPress doğrudan yüklenerek PHP 8.5'te tekrar çalıştırıldı; 45 kontrol geçti ve temiz son debug günlüğünde eklenti/çekirdek uyarısı oluşmadı.

Tekrar çalıştırma

JavaScript için `trunk` içinde `npm ci`, `npm run build`, `npm test` kullanılabilir. İzole çekirdek testinin komutu `php tests/php-regression.php /path/to/wordpress` şeklindedir.

Gerçek entegrasyon testi `tests/wp-integration.php` dosyasındadır. Yalnızca ayrı bir yerel test kurulumu için `KC_CONTRACT_TEST_ALLOW=1 wp eval-file /path/to/plugin/tests/wp-integration.php --path=/path/to/test/wordpress` ile çalıştırılır. WordPress ortam türü `local`, site dili `tr_TR`, eklentiler etkin ve zorunlu onay ayarı açık olmalıdır. Test, isteğe bağlı kimlik alanlarını mevcut veritabanı ayarını değiştirmeden süreç içi filtreyle denetler.

Sınırlar ve yayın durumu

Bu kontrol mevcut canlı siteyi veya önceki Local kurulumunu değiştirmedi. Gerçek kredi kartı sağlayıcısı, fiziksel ürün/kargo hesaplaması, tüm tema/eklenti kombinasyonları, PHP 7.4/8.0 ve harici e-posta teslimatı denenmedi. Test e-postalarının dışarı gönderilmesi geçici kurulumda engellendi. Canlı Loco Translate arayüzü çalıştırılmadı; WordPress'in standart filtre ve katalog entegrasyonu denetlendi.

Bu rapordaki testlerden sonra kullanıcının yayımlama talebi doğrultusunda sürüm numarası ve `Stable tag` değeri `2.4.12` olarak güncellendi. Kararlı dağıtım `tags/2.4.12` üzerinden yapılır. Sürüm hazırlığı, test edilen çalışma zamanı düzeltmelerini değiştirmez.

Resmi sürüm kaynakları: [WordPress 7.1.3 duyurusu](https://wordpress.org/news/2026/10/wordpress-7-1-3-maintenance-and-security-release/), [WordPress sürüm API'si](https://api.wordpress.org/core/version-check/1.7/), [WooCommerce](https://wordpress.org/plugins/woocommerce/).
