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 WooCommerce’in 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:
WordPress’in kendi PHPMailer eklentisi bozulmuş olabilir veya eksik dosyalar var.
Çözüm:
  1. 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
  2. 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.
  3. PHPMailer Dosyalarını Yeniden Yükleyin
    /wp-includes/PHPMailer/ klasörünü WordPress’in 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. 🚀