WooCommerce Ödeme Sayfası Hata Veriyor: Sipariş Tamamlanamıyor
- Yayınlandı:
- Son teknik kontrol:
“Sipariş ver” butonuna basınca işlem dönüp duruyor, hata mesajı çıkıyor veya ödeme yöntemi görünmüyorBelirtiler
- “Sipariş ver” butonu dönüyor ama sonuç gelmiyor
- Ödeme sayfasında genel bir hata mesajı veya “SyntaxError: Unexpected token” uyarısı
- Ödeme yöntemi (kart, havale) ödeme sayfasında görünmüyor
- Bankanın 3D Secure ekranından dönüşte sipariş oluşmuyor veya başarısız görünüyor
- Sorun yalnızca bazı müşterilerde veya yalnızca oturum açmamış ziyaretçilerde
Kısa cevap
Müşteri “Sipariş ver”e bastığında tarayıcı, siparişi sunucuya bir arka plan isteğiyle gönderir. Bu istek önbellek, JavaScript hatası, güvenlik kuralı veya sunucudaki bir PHP hatası yüzünden bozulursa buton döner durur ya da genel bir hata mesajı çıkar. Ödeme yöntemi hiç görünmüyorsa neden genellikle ödeme eklentisinin ayarı veya blok tabanlı ödeme sayfasıyla uyumsuzluğudur. Teşhis, gizli pencerede müşteri gibi test siparişi verip tarayıcının ağ sekmesindeki cevaba ve WooCommerce günlüklerine bakarak yapılır.
Önemli noktalar
- Ödeme sayfası sayfa önbelleğine veya CDN önbelleğine asla alınmamalıdır.
- Asıl hata, tarayıcı ağ sekmesindeki ödeme isteğinin cevabında görünür.
- Blok tabanlı ödeme sayfasıyla uyumlu olmayan eski bir ödeme eklentisi orada görünmeyebilir.
- Test ve canlı API anahtarlarının karışması, ödeme sağlayıcısının isteği reddetmesine yol açar.
- WooCommerce > Durum > Günlükler ekranı hem ölümcül hataları hem ödeme eklentisi kayıtlarını gösterir.
Önce müşteri gibi test edin
Gizli pencerede, oturum açmadan sipariş verin
Yönetici olarak oturum açıkken önbellek ve bazı kurallar devre dışı kalır; sorunu müşterinin gördüğü gibi görmek için oturum açmayın.
Tarayıcı geliştirici araçlarını açın
F12 ile Console ve Network (Ağ) sekmelerini açın, ardından “Sipariş ver”e basın.
Ödeme isteğinin cevabına bakın
Klasik ödeme sayfasında istek adresi “?wc-ajax=checkout” içerir; blok tabanlı ödeme sayfasında “/wp-json/wc/store/v1/checkout”. İsteğin durum koduna ve cevap gövdesine bakın.
Günlükleri kontrol edin
WooCommerce > Durum > Günlükler ekranında aynı dakikaya ait ölümcül hata ve ödeme eklentisi kayıtlarına bakın.
Belirtiye göre neden
| Ne görüyorsunuz | Olası neden | Çözüm |
|---|---|---|
| Cevap HTML veya bir PHP uyarısıyla başlıyor; ekranda “SyntaxError: Unexpected token” | Sunucu, JSON cevabının önüne bir PHP uyarısı veya hata sayfası ekliyor | Günlükteki PHP hatasını düzeltin; canlı sitede hata gösterimini (WP_DEBUG_DISPLAY) kapatın |
| İstek 403 dönüyor | Güvenlik eklentisi veya sunucu güvenlik duvarı ödeme isteğini engelliyor | Güvenlik kaydında engellenen isteği bulun ve ödeme uç noktası için istisna tanımlayın |
| Oturum veya güvenlik anahtarı süresi doldu uyarısı; sorun rastgele müşterilerde | Ödeme sayfası önbelleğe alınmış, eski güvenlik anahtarları sunuluyor | Sepet, ödeme ve hesabım sayfalarını önbellek ve CDN kurallarından hariç tutun (sepet güncellenmiyor sayfasında ayrıntılı) |
| Buton dönüyor, ağ sekmesinde istek hiç gitmiyor | Sayfadaki bir JavaScript hatası ödeme betiğini durdurmuş; sık neden JS birleştirme/erteleme ayarı | Konsoldaki hatayı izleyin; optimizasyon eklentisinde ödeme sayfasını JS birleştirme ve ertelemeden hariç tutun |
| Ödeme yöntemi görünmüyor | Yöntem kapalı, para birimi veya ülke kısıtı var ya da eklenti blok ödeme sayfasını desteklemiyor | Ödeme ayarlarını kontrol edin; eklenti blok desteği sunmuyorsa geliştiricisine sorun veya klasik ödeme sayfasına dönün |
| Ödeme sağlayıcısı “yetkisiz” / “geçersiz anahtar” diyor | Test ve canlı API anahtarları karışmış veya anahtarlar yenilenmiş | Ödeme eklentisi ayarlarında ortamı (test/canlı) ve anahtarları sağlayıcı panelindekilerle karşılaştırın |
| 3D Secure sonrası sipariş başarısız veya “beklemede” | Bankadan dönüş (callback) adresi engellenmiş, önbelleğe alınmış veya yanlış tanımlı | Sağlayıcı panelindeki dönüş/bildirim adresini ve bu adrese gelen isteklerin güvenlik kurallarına takılmadığını kontrol edin |
| Kargo seçeneği bulunamadı uyarısı | Müşterinin adresi hiçbir kargo bölgesine uymuyor | WooCommerce > Ayarlar > Kargo altında kargo bölgelerini ve yöntemlerini gözden geçirin |
Blok tabanlı ödeme sayfası ve eski eklentiler
WooCommerce’te blok tabanlı sepet ve ödeme sayfaları yeni varsayılandır. Bu sayfalar ödeme isteğini farklı bir yoldan (Store API) gönderir; bu yolu desteklemeyen eski bir ödeme, kargo veya ödeme alanı eklentisi burada görünmeyebilir ya da çalışmayabilir. WooCommerce’in önerisi, eklenti geliştiricisinden blok desteği istemektir. Beklerken ödeme sayfasını klasik ödeme kısa koduna döndürmek geçici bir çözümdür; bu değişikliği önce bir kopya sitede deneyin.
Sipariş oluşuyor ama müşteriye veya size e-posta gitmiyorsa sorun ödeme değil e-posta gönderimidir; WooCommerce e-posta gitmiyor rehberine bakın.