Müşteri Panel Verisi Kancaları
Müşteri panelinin on beş veri filtresi: hesap sekmeleri, ana sayfa panelleri, fatura listeleri, ortaklık ve bayi ekranları.
Genel Bakış
Müşteri panelinin ekrana taşıdığı verinin filtreleri burada: hesap sekmeleri, ana sayfa panelleri, fatura listeleri, ortaklık ve bayi ekranları.
Bu grupta iki şey tekrar eder. Birincisi aktif hesap: alt kullanıcı başka bir hesaba bakıyorsa elinizdeki kimlik giriş yapanın değil, bakılan hesabındır. İkincisi tutarların biçimlenmiş gelmesi: karşılaştırma yapacaksanız ham değeri ayrıca okuyun.
Referans
Hesap sekmelerini gizleme
Müşteri hesabının sekmeleri çizilmeden önce çalışır. Bir sekmeyi kapatmak, oradaki işlemi de kullanıcının gözünden kaldırır.
Hook::add('filter:client.account.tabs', 10, function (&$tabs, &$uid, &$self) {
// Yalniz GORUNURLUK: islemi kapatmaz.
if (!$self) $tabs['security'] = false;
});Şablona geçen veriyi genişletme
Müşteri sitesinde her sayfa çizilmeden önce çalışır. Buraya eklediğiniz her anahtar bir şablon değişkeni olur.
Hook::add('filter:client.predefined_data', 10, function (&$data, &$ctx) {
// HER sayfada calisir: once rotaya bakin.
if (($ctx['route'] ?? '') !== 'my-account') return;
$data['acme_banner'] = Acme::accountBanner();
});Ana sayfa panellerini değiştirme
Ana sayfanın panelleri hazırlandıktan sonra çalışır.
Hook::add('filter:client.homepage_panels', 10, function (&$panels) {
// Dort anahtarin hepsi kalmali.
$panels['product_cards'] = Acme::reorderCards($panels['product_cards'] ?? []);
});Bakım kararını değiştirme
Bakım modu kararı verildikten sonra, sayfa servis edilmeden önce çalışır. Belirli adresleri bakım dışında tutmanın yolu budur.
Hook::add('filter:client.maintenance', 10,
function (&$passive_maintenance, $controller, $foundAdmin) {
// TERS okunur: true = bakim ATLANIR.
if ($controller === 'status') $passive_maintenance = true;
});Fatura listesi satırlarını değiştirme
Müşterinin fatura listesi ekrana gitmeden önce çalışır.
Hook::add('filter:client.invoice_list_data', 10, function (&$rows, $uid) {
foreach ($rows as $i => $r) $rows[$i]['acme_note'] = Acme::noteFor($r['id'] ?? 0);
});Fatura özetini değiştirme
Fatura listesinin üstündeki özet hazırlandıktan sonra çalışır.
Hook::add('filter:client.invoice_list_summary', 10, function (&$summary, $uid) {
// Sayilari degistirirseniz uyari metnini de guncelleyin.
$summary['outstanding']['show'] = Acme::hideOutstanding($uid) ? false : ($summary['outstanding']['show'] ?? false);
});Fatura paylaşım adresini değiştirme
Müşteri bir faturayı paylaşmak istediğinde, adres üretildikten sonra çalışır.
Hook::add('filter:client.invoice_share_url', 10, function (&$shareUrl, $id, $ownerId) {
// Adres giris gerektirmez: kendi kaydiniza yazmayin.
$shareUrl = Acme::shorten($shareUrl);
});Fatura işlem listesini değiştirme
Faturanın ödeme hareketleri ekrana gitmeden önce çalışır.
Hook::add('filter:client.invoice_transactions', 10, function (&$rows, $id, $invCid) {
// Iadeler de bu listede.
foreach ($rows as $i => $r)
if ($r['refund'] ?? false) $rows[$i]['method'] = 'Acme iade';
});Toplu ödeme listesini değiştirme
Müşterinin birden çok faturayı birlikte ödeyeceği ekranda çalışır.
Hook::add('filter:client.bulk_pay_rows', 10, function (&$rows, &$uid) {
// Cikardiginiz fatura burada odenemez hale gelir.
$rows = array_values(array_filter($rows, fn ($r) => !Acme::onHold($r['id'] ?? 0)));
});Komisyon listesini değiştirme
Ortağın komisyon listesi ekrana gitmeden önce çalışır.
Hook::add('filter:client.affiliate_commissions', 10,
function (&$commissions, $commissionsCtx) {
// Uc durum var: hepsini toplamayin.
$commissions = array_values(array_filter($commissions,
fn ($c) => ($c['flag'] ?? '') !== 'rejected'));
});Ödeme kanalı listesini değiştirme
Ortağın seçebileceği ödeme kanalları hazırlandıktan sonra çalışır.
Hook::add('filter:client.affiliate_gateways', 10, function (&$out, $gatewaysCtx) {
// Etiket degistirmek eski kayitlarla eslesmeyi bozabilir.
$out[] = 'Acme Wallet';
});Yönlendirme hedefini değiştirme
Ziyaretçi bir ortaklık bağlantısına tıkladığında, yönlendirme yapılmadan önce çalışır.
Hook::add('filter:client.affiliate_referral_redirect', 10,
function (&$redirect, $redirectCtx) {
// Gecersiz kodda da calisir: once isarete bakin.
if (!($redirectCtx['valid'] ?? false)) return;
$redirect = Acme::landingFor((int) ($redirectCtx['owner_id'] ?? 0)) ?: $redirect;
});Ödeme talebi tutarını değiştirme
Ortak kazancının ödenmesini isterken, tutar kaydedilmeden önce çalışır. Yazdığınız değer kayda geçer.
Hook::add('filter:client.affiliate_withdraw_amount', 10,
function (&$amount, $uid, $cid, $amountCtx) {
// Para birimi ORTAGIN birimidir, magazaninki degil.
$amount = Acme::roundToPayoutStep($amount, $cid);
});Bayi istatistiklerini değiştirme
Bayi panosunun sayıları hesaplandıktan sonra çalışır.
Hook::add('filter:client.reseller_stats', 10, function (&$stats, $statsCtx) {
$stats['acme_target'] = Acme::monthlyTarget((int) ($statsCtx['uid'] ?? 0));
});Bayi kademelerini değiştirme
Bayi kademe listesi hazırlandıktan sonra çalışır. Kanca iki ayrı ekranda kullanılır.
Hook::add('filter:client.reseller_tiers', 10, function (&$tiers, $tiersCtx) {
// Tanitim sayfasinda hesap kimligi SIFIR gelir.
if (($tiersCtx['scope'] ?? '') === 'program') return;
$tiers = Acme::highlightCurrent($tiers, (int) ($tiersCtx['uid'] ?? 0));
});Tuzaklar
Bakım filtresindeki değer "bakım açık mı" değil "bakım atlanacak mı" sorusunu cevaplar. Adına bakıp doğru yapan bir dinleyici, bakım moduna aldığınız siteyi ziyaretçilere açar. Değeri değiştirmeden önce yönünü doğrulayın.
Hesap sekmesi filtresi yalnız görünürlüğü yönetir. Sekmeyi kapatmak arkasındaki işlemi kapatmaz: adresi bilen biri oraya doğrudan istek atabilir. Erişimi gerçekten engellemek için ilgili kapıyı kullanın.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.