Müşteri Hesap ve İletişim Kancaları
Müşteri hesabı ve site iletişiminin on dört kancası: API anahtarları, profil, para birimi, iletişim formu ve bülten.
Genel Bakış
Müşterinin ve ziyaretçinin site üzerinde bıraktığı izler burada: API anahtarları, profil, para birimi tercihi, iletişim formu ve bülten.
Bu kancaların çoğunda veri doğrulanmamış bir kaynaktan gelir: iletişim formunu dolduran ziyaretçi, bültene abone olan adres, bulunamayan sayfayı isteyen bot. Dış servise taşımadan önce kendiniz denetleyin.
Referans
API anahtarı izinlerinin değişmesini izleme
Bir API anahtarının izinleri değiştikten sonra çalışır. İzin genişlemesi bir güvenlik olayıdır.
Hook::add('action:client.api_key_updated', 10, function ($owner_id, $id, $perms) {
// Eski izin kumesi gecilmez: karsilastirma icin kendiniz saklayin.
Acme::recordScopes($id, $perms);
});API anahtarının yenilenmesini izleme
Bir API anahtarının değeri yenilendikten sonra çalışır. Kayıt aynı kalır, kimlik değişir: eski değerle yapılan çağrılar artık geçmez.
Hook::add('action:client.api_key_regenerated', 10, function ($owner_id, $id) {
// Eski deger artik gecmez: kendi onbelleginizi tazeleyin.
Acme::invalidateCachedKey($id);
});API anahtarının silinmesini izleme
Bir API anahtarı silindikten sonra çalışır.
Hook::add('action:client.api_key_deleted', 10, function ($owner_id, $id) {
Acme::revokeIntegration($id);
});Müşteri profilinin güncellenmesini izleme
Müşteri profili güncellendikten sonra çalışır.
Hook::add('action:client.profile_updated', 10, function ($uid, $data_updates, $info_updates) {
// $uid HESABIN kimligi, giris yapanin degil.
Acme::syncCrm($uid, $data_updates + $info_updates);
});Para birimi değişimini izleme
Ziyaretçi site para birimini değiştirdiğinde çalışır. Değişiklik çoktan uygulanmıştır.
Hook::add('action:client.currency_changed', 10, function ($new_cid, $old_cid, $member) {
// Misafirde uye verisi BOS gelir.
if (!$member) return;
Acme::rememberCurrency((int) ($member['id'] ?? 0), $new_cid);
});Bulunamayan sayfayı izleme
İstenen adres çözülemediğinde çalışır. Kırık bağlantıları bulmanın en doğrudan yoludur.
Hook::add('action:client.page_not_found', 10, function ($url) {
// Bot trafigi insan trafiginden cok olabilir: suzun.
if (Acme::looksLikeScanner($url)) return;
Acme::noteBrokenLink($url);
});İletişim formunun gönderilmesini izleme
Ziyaretçi iletişim formunu gönderdikten sonra çalışır.
Hook::add('action:client.contact_submitted', 10,
function ($message_id, $full_name, $email, $phone, $message, $ip) {
// Degerlerin hepsi ZIYARETCIDEN gelir: dogrulanmamistir.
Acme::pushToCrm($message_id, $email, $message);
});İletişim mesajının yanıtlanmasını izleme
Yönetici bir iletişim mesajını yanıtladıktan sonra çalışır.
Hook::add('action:client.contact_message_replied', 10, function ($message, $admin_message) {
Acme::closeCrmCase((int) ($message['id'] ?? 0));
});Mesajın istenmeyen işaretlenmesini izleme
Bir iletişim mesajı istenmeyen olarak işaretlendikten sonra çalışır. Yanındaki iki işaret ne kadar sert davranıldığını söyler.
Hook::add('action:client.contact_message_spam_reported', 10,
function ($message, $block_emails, $report_spam) {
// Iki isaret bagimsizdir.
if ($report_spam) Acme::shareBadAddress($message['ip'] ?? '');
});Mesajın talebe dönüşmesini durdurma
Bir iletişim mesajı destek talebine dönüştürülmeden önce çalışır.
Hook::add('gate:client.contact_message_to_ticket', 10,
function ($message, $department, $staff) {
if (Acme::blockedSender($message['email'] ?? '')) return 'Bu gonderici icin talep acilamaz.';
return null;
});İletişim sayfası verisini değiştirme
İletişim sayfası çizilmeden önce çalışır. Ofisler ve destek saatleri çoktan aktif dile göre çözülmüştür.
Hook::add('filter:client.contact_page_data', 10, function (&$page_data, &$lang) {
// Eklenen anahtar sablon degiskeni olur.
$page_data['acme_map'] = Acme::mapEmbed($lang);
});Bülten kaydını durdurma
Bir adres bülten listesine eklenmeden önce çalışır. Tek kullanımlık adresleri elemenin yeri burasıdır.
Hook::add('gate:client.newsletter_subscribe', 10, function ($email, $lang) {
if (Acme::disposableDomain($email)) return 'Bu adres kabul edilmiyor.';
return null;
});Bülten kaydını izleme
Bir adres bülten listesine eklendikten sonra çalışır.
Hook::add('action:client.newsletter_subscribed', 10, function ($email, $lang, $added) {
// Dil toplu gonderimde icerigin dilini belirler.
Acme::syncMailingList($email, $lang);
});Bülten çıkışını izleme
Bir adres listeden çıkarıldıktan sonra çalışır. Çıkış e-postadaki bağlantıyla yapılır: giriş gerekmez.
Hook::add('action:client.newsletter_unsubscribed', 10, function ($email) {
// Kendi listenizden de cikarin: yoksa gonderim surer.
Acme::dropFromMailingList($email);
});Tuzaklar
Güncelleme kancasının verdiği kimlik, profili değiştirilen hesabındır; işlemi yapan kişininki değil. Uygun izne sahip bir alt kullanıcı başka bir hesabın profilini güncelleyebilir. Denetim kaydına "kim yaptı" yazacaksanız oturumdan ayrıca okuyun.
Tarama botları var olmayan adresleri sürekli dener; bir sitede bu istekler insan trafiğini kolayca aşar. Her çağrıda kayıt yazan bir dinleyici kendi tablosunu şişirir ve gerçek kırık bağlantıları görünmez kılar. Süzgeç koyun.
İ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.