Apakah ada kait setelah konfirmasi pengguna?


8

Saya ingin menambahkan tipe konten setelah pengguna mendaftar ke situs.

Saya mencoba hook_user_save()tetapi itu menyimpan jenis konten sebelum pengguna mengkonfirmasi email-nya.

Apakah ada kaitan setelah konfirmasi email?

Jawaban:


11

Meskipun pendekatan ini menggunakan modul, saya menambahkan node setelah pengguna mengkonfirmasi email mereka menggunakan Logintoboggan dan Aturan . Integrasi aturan Logintoboggan menambahkan acara baru When the user account is validated, yang akan memungkinkan Anda untuk melakukan tindakan setelah konfirmasi email.


Pastikan untuk menginstal modul Integrasi Aturan LoginToboggan dari proyek LoginToboggan .
Batandwa

8

Ini bekerja untuk saya:

/**
 * 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
  }
}

Saya harus menggunakanif($account->uid && $account->original->status == 0 && $account->status == 1)
user2534880

2

Jika Anda menggunakan modul LoginToboggan untuk validasi email dan Anda tidak ingin menggunakan modul aturan, Anda cukup meniru respons validasi modul (mengeksploitasi logintoboggan_email_validated = TRUEproperti akun sementara yang didorong ke hook_user_update) sendiri dalam kode:

 /**
 * 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

  }
}

Karena modul inti dan lainnya juga akan mengaktifkan hook_user_update Anda ingin menerapkan sesuatu untuk menghindari tindakan berulang. Dalam contoh ini saya menetapkan properti lain pada $ akun setelah tindakan dimulai tetapi Anda dapat menerapkan kontrol yang lebih baik jika perlu.

Perhatikan bahwa jika menggunakan LoginToboggan untuk validasi e-mail otomatis, metode IOco tidak akan berfungsi (di antara banyak alasan - selama hook_user_presave, $ akun-> status == 1 (hanya perannya ada dalam "pra-resmi" yang Anda pilih) negara).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.