Có một cái móc sau khi xác nhận người dùng?


8

Tôi muốn thêm một loại nội dung sau khi người dùng đăng ký vào trang web.

Tôi đã thử hook_user_save()nhưng nó lưu loại nội dung trước khi người dùng xác nhận e-mail của mình.

Có một cái móc sau khi xác nhận e-mail?

Câu trả lời:


11

Mặc dù cách tiếp cận này sử dụng các mô-đun, tôi thêm các nút sau khi người dùng xác nhận e-mail của họ bằng LogintobogganRules . Tích hợp quy tắc Logintoboggan thêm một sự kiện mới, When the user account is validatedcho phép bạn thực hiện các hành động khi xác nhận e-mail.


Hãy chắc chắn cài đặt mô-đun Tích hợp quy tắc LoginToboggan từ dự án LoginToboggan .
Batandwa

8

Đây là công việc cho tôi:

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

Tôi đã phải sử dụngif($account->uid && $account->original->status == 0 && $account->status == 1)
user2534880

2

Nếu bạn đang sử dụng mô-đun LoginToboggan để xác thực e-mail và bạn không muốn sử dụng mô-đun quy tắc, bạn có thể chỉ cần bắt chước phản hồi xác thực của mô-đun (khai thác thuộc logintoboggan_email_validated = TRUEtính tài khoản tạm thời được đẩy vào hook_user_update) trong mã:

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

  }
}

Vì lõi và các mô-đun khác cũng sẽ gọi hook_user_update bạn muốn thực hiện một cái gì đó để tránh các hành động lặp đi lặp lại. Trong ví dụ này, tôi đặt một thuộc tính khác trên tài khoản $ sau khi hành động được bắt đầu nhưng bạn có thể áp đặt kiểm soát tốt hơn nếu cần thiết.

Lưu ý rằng nếu sử dụng LoginToboggan để xác thực e-mail tự động, phương thức của IOco sẽ không hoạt động (trong số nhiều lý do - trong quá trình hook_user_presave, $ account-> status == 1 (đó chỉ là vai trò trong "quyền được ủy quyền" được bầu của bạn tiểu bang).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.