Hesap ve İletişim Kancaları

1.6k görüntülenme Markdown

Profil görseli, adresler, bağlı sağlayıcılar ve tercihlerin sekiz kancası.

Genel Bakış

Müşterinin kendisini tanımladığı her şey burada: profil görseli, fatura adresleri, bağlı sosyal hesaplar ve bildirim tercihleri.

Adres tarafında dört kanca vardır: kaydetmenin kapısı ve olayı, varsayılan değişimi ve silme. Varsayılan adres, faturaların üzerine yazılan adrestir.

Referans

Profil görselinin değişmesini izleme

actionuser.avatar_changed
AccountUsers iki dal

Müşteri profil görselini yüklediğinde ya da kaldırdığında çalışır.

Parametreler 3
$uidintHesabın sahibi.
$actionstringNe oldu: set yüklendi, removed kaldırıldı.
$picturestringYeni görselin yolu. Kaldırma dalında her zaman boştur: yolu kullanmadan önce eyleme bakın.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.avatar_changed', 10, function ($uid, $action, $picture) {
    // Kaldirma dalinda yol BOS gelir.
    if ($action === 'removed') { Acme::dropAvatar($uid); return; }

    Acme::mirrorAvatar($uid, $picture);
});

Adres kaydını durdurma

gateuser.contact_save
AccountUsers sıfır = yeni

Müşteri bir adres kaydetmeden önce çalışır.

Parametreler 3
$uidintAdresin sahibi olacak hesap.
$dataarrayKaydedilecek adres verisi: adı, e-postası, telefonu, ülkesi ve vergi bilgileri.
$idintDüzenlenen adresin kimliği; sıfır ise yeni ekleniyordur.
Dönüş 1
string|nullBoş olmayan bir metin işlemi engeller ve hata olarak gösterilir. Boş dönüş devam ettirir.
Dinleyici
Hook::add('gate:user.contact_save', 10, function ($uid, $data, $id) {
    // Sifir kimlik yeni kayit demektir.
    if (!Acme::taxNumberValid($data)) return 'Vergi bilgisi dogrulanamadi.';

    return null;
});

Adres kaydını izleme

actionuser.contact_saved
AccountUsers ekleme ve düzenleme

Bir adres kaydedildikten sonra çalışır.

Parametreler 4
$uidintAdresin sahibi.
$saved_idintKaydedilen adresin kimliği.
$dataarrayAdres verisi.
$is_newboolDoğruysa yeni eklendi.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.contact_saved', 10, function ($uid, $saved_id, $data, $is_new) {
    Acme::syncContact($uid, $saved_id, $data);
});

Varsayılan adresin değişmesini izleme

actionuser.contact_default_changed
AccountUsers varsayılan değişimi

Bir adres varsayılan yapıldığında çalışır. Varsayılan adres, faturaların üzerine yazılan adrestir.

Parametreler 2
$uidintAdresin sahibi.
$idintYeni varsayılan yapılan adres.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.contact_default_changed', 10, function ($uid, $id) {
    // Varsayilan adres faturalara yazilan adrestir.
    Acme::syncBillingAddress($uid, $id);
});

Adres silinmesini izleme

actionuser.contact_deleted
AccountUsers silme sonrası

Bir adres silindikten sonra çalışır.

Parametreler 3
$uidintAdresin sahibi.
$idintSilinen adresin kimliği; satır artık yoktur.
$existingarraySilinmeden hemen önce okunan tam adres.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.contact_deleted', 10, function ($uid, $id, $existing) {
    Acme::dropContact($uid, $id);
});

Sosyal hesap bağlamayı izleme

actionuser.connected_provider
SocialAuth hesap bağlama

Bir hesap dış sağlayıcıya bağlandığında çalışır.

Parametreler 2
$userobjectEşleşen kullanıcı kaydı.
$mod_namestringBağlanılan sağlayıcının adı.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.connected_provider', 10, function ($user, $mod_name) {
    Acme::noteLink((int) ($user->id ?? 0), $mod_name);
});

Bildirim tercihlerinin değişmesini izleme

actionuser.notification_preferences_changed
AccountUsers kanal bazlı

Müşteri hangi bildirimleri alacağını değiştirdiğinde çalışır.

Parametreler 2
$uidintTercihi değişen hesap.
$prefsarrayYazılan tercihler, kanal bazında. Anahtarlar bilerek veritabanı kolonlarının adıdır: hangi katmanın değiştiği tartışmaya yer bırakmasın diye.
Dönüş 1
voidDönüş yoksayılır. Tercihler çoktan yazılmıştır.
Dinleyici
Hook::add('action:user.notification_preferences_changed', 10, function ($uid, $prefs) {
    Acme::syncPreferences($uid, $prefs);
});

Eylem kaydının metnini üretme

filteruser.action_text
User::addAction yalnız boşken

Bir hesap eyleminin görünen metni çözülürken çalışır. Kendi eylem anahtarlarınızın metnini burada üretirsiniz.

Parametreler 2
$textstringÇekirdeğin bulduğu metin. Kanca yalnız metin bulunamadığında çalışır, bu yüzden bu değer daima boştur. İmza tutarlılığı için geçer.
$ctxarrayBağlam: eylem anahtarı, istenen dil ve yer tutucu değerleri.
Dönüş 1
string|nullÜrettiğiniz metni döndürürsünüz. İlgilenmediğiniz anahtarda hiçbir şey döndürmeyin.
Dinleyici
Hook::add('filter:user.action_text', 10, function ($text, $ctx) {
    // Kanca yalniz metin bulunamadiginda calisir.
    if (!str_starts_with($ctx['key'] ?? '', 'acme.')) return null;

    return Acme::actionText($ctx['key'], $ctx['lang'] ?? '', $ctx['variables'] ?? []);
});

Tuzaklar

Görsel yolu kaldırma dalında boştur

Profil görseli kancası hem yükleme hem kaldırma için çalışır ve kaldırmada yol alanı her zaman boş gelir. Yolu doğrudan kullanan bir dinleyici o dalda boş bir değerle iş yapar.

Varsayılan adres faturaya yazılan adrestir

Varsayılan değişimi yalnız bir tercih değildir: sonraki faturalar bu adresi taşır. Muhasebe tarafını eşitliyorsanız bu kancayı da dinleyin.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.