Kullanıcı onayından sonra bir kanca var mı?


8

Bir kullanıcı siteye kaydolduktan sonra bir içerik türü eklemek istiyorum.

Denedim hook_user_save()ama kullanıcı e-postasını onaylamadan önce içerik türünü kaydeder.

E-posta onayından sonra bir kanca var mı?

Yanıtlar:


11

Bu yaklaşım modüllerini kullanır rağmen, kullanıcılara sonra düğümler kullanarak e-postalarını onaylamak eklemek Logintoboggan ve Kurallar . Logintoboggan kural entegrasyonu, When the user account is validatede-posta onayı üzerine eylemler gerçekleştirmenize olanak tanıyan yeni bir etkinlik ekler .


LoginToboggan Projesinden LoginToboggan Rules Integration modülünü yüklediğinizden emin olun .
Batandwa

8

Bu benim için iş yapar:

/**
 * Implements @see hook_user_presave
 */
function hook_user_presave(&$edit, $account, $category) {
  if ($account->uid // user is not new
      && $account->status === "0" && $edit['status']==1) { // user is being activated
  }
}

if($account->uid && $account->original->status == 0 && $account->status == 1)
Kullanmak

2

E-posta doğrulaması için LoginToboggan modülünü kullanıyorsanız ve kurallar modülünü kullanmak istemiyorsanız, modülün doğrulama yanıtını taklit edebilirsiniz ( logintoboggan_email_validated = TRUEhook_user_update'e itilen geçici bir hesap özelliğinden yararlanabilirsiniz ):

 /**
 * Implement hook_user_update()
 *
 */
function yourcustommodule_user_update(&$edit, $account) {
  if (!empty($account->logintoboggan_email_validated) && !isset($account->your_custom_action)) {
        $account->your_custom_action = TRUE;

        // Do what you want here

  }
}

Çekirdek ve diğer modüller ayrıca hook_user_update'i çağıracağından, tekrarlanan eylemlerden kaçınmak için bir şeyler uygulamak istersiniz. Bu örnekte, eylem başlatıldıktan sonra $ hesabına başka bir özellik ayarladım, ancak gerekirse daha ince denetim uygulayabilirsiniz.

Otomatik e-posta doğrulaması için LoginToboggan kullanıldığında IOco'nun yöntemi işe yaramazsa (birçok nedenden - bir hook_user_presave sırasında, $ account-> status == 1 (yalnızca rolün seçtiğiniz "önceden yetkilendirilmiş" durumunda olduğunu unutmayın) durum).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.