มีเบ็ดหลังจากการยืนยันจากผู้ใช้หรือไม่?


8

ฉันต้องการเพิ่มประเภทเนื้อหาหลังจากผู้ใช้ลงทะเบียนกับเว็บไซต์

ฉันพยายามhook_user_save()แต่มันบันทึกประเภทเนื้อหาก่อนที่ผู้ใช้จะยืนยันอีเมลของเขา

มีตะขอหลังจากการยืนยันอีเมลหรือไม่

คำตอบ:


11

แม้ว่าวิธีการนี้ใช้โมดูลผมเพิ่มโหนดหลังจากที่ผู้ใช้ยืนยันอีเมลของตนโดยใช้Logintobogganและกฎ การรวมกฎ Logintoboggan เพิ่มเหตุการณ์ใหม่When the user account is validatedซึ่งจะช่วยให้คุณสามารถดำเนินการตามอีเมลยืนยัน


ต้องแน่ใจว่าได้ติดตั้งโมดูลการรวมกฎการเข้าใช้งานLoginTobogganจากโครงการLoginToboggan
Batandwa

8

มันทำงานได้ดีสำหรับฉัน:

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

2

หากคุณกำลังใช้โมดูล LoginToboggan สำหรับการตรวจสอบอีเมลและคุณไม่ต้องการใช้โมดูลกฎคุณสามารถเลียนแบบการตอบสนองการตรวจสอบความถูกต้องของโมดูล (ใช้ประโยชน์จากlogintoboggan_email_validated = TRUEคุณสมบัติบัญชีชั่วคราวที่ส่งไปยัง hook_user_update) ในโค้ด:

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

  }
}

เนื่องจากคอร์และโมดูลอื่น ๆ จะเรียกใช้ hook_user_update ด้วยดังนั้นคุณจึงต้องการนำบางสิ่งมาใช้เพื่อหลีกเลี่ยงการกระทำซ้ำ ๆ ในตัวอย่างนี้ฉันตั้งค่าคุณสมบัติอื่นในบัญชี $ เมื่อเริ่มต้นการกระทำ แต่คุณสามารถกำหนดการควบคุมที่ดีขึ้นได้หากจำเป็น

โปรดทราบว่าหากใช้ LoginToboggan สำหรับการตรวจสอบอีเมลอัตโนมัติวิธีการของ IOco จะไม่ทำงาน (ด้วยเหตุผลหลายประการ - ในช่วง hook_user_presave สถานะ $ account-> status == 1 (เป็นเพียงบทบาทที่คุณได้รับเลือก "อนุมัติล่วงหน้า" สถานะ).

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.