사용자 확인 후 후크가 있습니까?


8

사용자가 사이트에 등록한 후 컨텐츠 유형을 추가하고 싶습니다.

시도 hook_user_save()했지만 사용자가 전자 메일을 확인하기 전에 내용 유형을 저장합니다.

이메일 확인 후 후크가 있습니까?

답변:


11

이 방법은 모듈을 사용하지만 LogintobogganRules를 사용하여 전자 메일을 확인한 후 노드를 추가 합니다. 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 = TRUEhook_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를 호출하기 때문에 반복되는 동작을 피하기 위해 무언가를 구현하고 싶을 것입니다. 이 예에서는 작업이 시작되면 $ account에 다른 속성을 설정했지만 필요한 경우 더 세밀한 제어를 강요 할 수 있습니다.

자동 이메일 유효성 검사를 위해 LoginToboggan을 사용하는 경우 IOco의 방법이 작동하지 않는 경우 (여러 가지 이유로 hook_user_presave 중에 $ account-> status == 1 (이것은 역할이 선택한 "사전 승인 된"것임) 상태).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.