Ana içeriğe geç

Version Docs Updated

Amaç

Bu sayfa, finansal ödeme kayıtlarının toplu olarak dışa aktarılmasını sağlayan PayoutCsvExporter bileşeninin teknik işleyişini ve veri güvenliği kurallarını açıklar.

📊 Payout CSV Exporter

PayoutCsvExporter, yöneticilerin ödeme geçmişini denetlemek veya banka entegrasyonları için toplu veri almak amacıyla kullandığı bir yardımcı sınıftır. Veriyi hafızaya almadan doğrudan tarayıcıya "stream" ederek yüksek performans sağlar.


🛠️ Teknik İşleyiş

1. Erişim ve Güvenlik

Dışa aktarma işlemi standart bir WordPress admin_post kancası üzerinden yürütülür:

  • Endpoint: /wp-admin/admin-post.php?action=mhm_export_payouts
  • Yetki Kontrolü: Sadece manage_options (Yönetici) yetkisine sahip kullanıcılar erişebilir.
  • Nonce Doğrulama: İşlemin geçerliliği mhm_export_payouts anahtarlı bir WP Nonce üzerinden doğrulanır.

2. Veri Formatı (Excel Uyumluluğu)

Sistem, CSV dosyalarının özellikle Excel'de düzgün açılabilmesi için UTF-8 with BOM (Byte Order Mark) kullanır:

  • BOM: \xEF\xBB\xBF karakter dizisi dosyanın başına eklenir.
  • Ayrıcı: Standart virgül (,) ayrıcı olarak kullanılır.

📋 CSV Sütun Yapısı (Mapping)

Dışa aktarılan dosyadaki kolonlar ve kaynakları aşağıdaki gibidir:

Kolon AdıVeri KaynağıAçıklama
Payout IDPost IDSistemsel benzersiz kimlik.
Vendor NameWP_User Display NameÖdemenin yapıldığı satıcının tam adı.
Amount_mhm_payout_amountÖdeme tutarı (Decimal format).
CurrencyWC CurrencyWooCommerce baz para birimi.
CPT Statuspost_statusWordPress tarafındaki durum (Pending, Approved vb.).
Processor Status_mhm_payout_statusÖdeme sağlayıcısından dönen statü kodu (n/a ise bekliyor).
Requested Atpost_date_gmtTalebin UTC zaman damgası.

🔒 Güvenlik Protokolleri

PII (Kişisel Veri) Maskeleme

CSV çıktıları finansal denetim için tasarlandığından, satıcıların hassas bilgileri (IBAN, Vergi No) varsayılan olarak bu exportta yer almaz. Bu verilere sadece Payout dökümü içindeki şifreli meta katmanından erişilebilir.

Loglama

Her dışa aktarma (Export) işlemi, mhm_rentiva_payout_audit tablosuna "export_triggered" aksiyonu ile kaydedilir. Kimin, ne zaman veri indirdiği forensics sisteminde izlenebilir.


💡 Geliştirici Notları

İhracat linkini dinamik olarak oluşturmak için PHP tarafında şu metod kullanılmalıdır:

// Güvenli (Nonce-protected) Export URL'si alma
$export_url = \MHMRentiva\Admin\PostTypes\Payouts\PayoutCsvExporter::get_export_url();

Bölüm Sonu Özeti

  • PayoutCsvExporter, yüksek veri hacimleri için Streaming metodunu kullanır.
  • Tüm operasyon Nonce ve Capability kontrolü ile korunur.
  • Çıktılar Excel-Ready (UTF-8 BOM) formatındadır.

Değişiklik Günlüğü

TarihSürümNot
19.03.20264.21.2Sayfa, PayoutCsvExporter sınıfındaki streaming mantığı ve Excel BOM yapısına göre güncellendi.