Bu hata kayıtlarında WooCommerce ve Shopier ödeme eklentisinde bazı ciddi hatalar olduğunu gösteriyor. Özellikle şu sorunlar öne çıkıyor:
1. Hatalı Order Erişimi
Hata Mesajı:id was called incorrectly. Order properties should not be accessed directly.
order_key was called incorrectly.
Sebep:
WooCommerce 3.0 sonrası sürümlerde
WC_Order nesnesinin özelliklerine doğrudan erişim yasaklandı. Bunun yerine WooCommercein sunduğu metodlar kullanılmalı.
Çözüm:
Shopier ödeme eklentisindeki id ve order_key erişimlerini şu metodlarla değiştirmeniz gerekiyor:
Yanlış:
php
KopyalaDüzenle
$order_id = $order->id;
$order_key = $order->order_key;
Doğru:
php
KopyalaDüzenle
$order_id = $order->get_id();
$order_key = $order->get_order_key();
Eğer eklenti güncel değilse, güncellenmesini sağlayın veya manuel olarak düzenleyin.
2. Tanımsız Değişken ($productNames)
Hata Mesajı:PHP Warning: Undefined variable $productNames in /home/isim/public_html/wp-content/plugins/shopier-payment-gateway-woocommerce2.0/index.php on line 221
Sebep:
$productNames değişkeni tanımlanmadan kullanılmış. Büyük ihtimalle ödeme işlemi sırasında ürün adlarını almak için bir fonksiyon eksik.
Çözüm:- index.php dosyanızın 221. satırında $productNames değişkeninin nasıl kullanıldığını kontrol edin.
- Tanımlı değilse, aşağıdaki kodla ürün isimlerini çağırmayı deneyin:
php
KopyalaDüzenle
$productNames = array();
$items = $order->get_items();
foreach ($items as $item) { $productNames[] = $item->get_name(); }
$productNames = implode(', ', $productNames);
Bu kod ile siparişe ait ürünlerin isimleri alınarak $productNames değişkeni oluşturulmuş olur.
3. PHPMailer Hatası
Hata Mesajı:PHP Fatal error: Uncaught Error: Call to undefined function PHPMailerPHPMailermail() in /home/isim/public_html/wp-includes/PHPMailer/PHPMailer.php:880
Sebep:
WordPressin kendi PHPMailer eklentisi bozulmuş olabilir veya eksik dosyalar var.
Çözüm:- WordPress Çekirdeğini Güncelleyin
Yönetici panelinden Araçlar > Site Sağlığı sekmesine girerek WordPress dosyalarının bütünlüğünü kontrol edebilirsiniz.
Alternatif olarak, terminal üzerinden WordPress çekirdeğini tekrar yükleyin:
css
KopyalaDüzenle
wp core download --force - Eklentileri Devre Dışı Bırakıp Test Edin
Aşağıdaki komutlarla eklentileri devre dışı bırakıp test edebilirsiniz:
css
KopyalaDüzenle
wp plugin deactivate --all
Daha sonra WooCommerce ve Shopier eklentisini tek tek aktifleştirerek sorunun hangi eklentiden kaynaklandığını bulun. - PHPMailer Dosyalarını Yeniden Yükleyin
/wp-includes/PHPMailer/ klasörünü WordPressin resmi sürümünden indirip tekrar yükleyin.
Genel Çözüm Önerileri:
✅
WooCommerce ve Shopier ödeme eklentisini güncelleyin.
✅
WordPress çekirdek dosyalarını doğrulayın ve eksik olanları tekrar yükleyin.
✅
Eklentileri tek tek devre dışı bırakıp sorunu hangi eklentinin tetiklediğini bulun.
✅
PHP sürümünüzü kontrol edin ve PHP 8+ ile uyumluluğunu doğrulayın.
Sorunun devam edip etmediğini kontrol ettikten sonra geri bildirim verebilirsiniz. 🚀