amnah\yii2\user\models\User::sendEmailConfirmation PHP Method

sendEmailConfirmation() public method

Send email confirmation to user
public sendEmailConfirmation ( amnah\yii2\user\models\UserToken $userToken ) : integer
$userToken amnah\yii2\user\models\UserToken
return integer
    public function sendEmailConfirmation($userToken)
    {
        /** @var Mailer $mailer */
        /** @var Message $message */
        // modify view path to module views
        $mailer = Yii::$app->mailer;
        $oldViewPath = $mailer->viewPath;
        $mailer->viewPath = $this->module->emailViewPath;
        // send email
        $user = $this;
        $profile = $user->profile;
        $email = $userToken->data ?: $user->email;
        $subject = Yii::$app->id . " - " . Yii::t("user", "Email Confirmation");
        $result = $mailer->compose('confirmEmail', compact("subject", "user", "profile", "userToken"))->setTo($email)->setSubject($subject)->send();
        // restore view path and return result
        $mailer->viewPath = $oldViewPath;
        return $result;
    }

Usage Example

Example #1
0
 /**
  * Process data after registration
  * @param \amnah\yii2\user\models\User $user
  */
 protected function afterRegister($user)
 {
     /** @var \amnah\yii2\user\models\UserToken $userToken */
     $userToken = $this->module->model("UserToken");
     // determine userToken type to see if we need to send email
     $userTokenType = null;
     if ($user->status == $user::STATUS_INACTIVE) {
         $userTokenType = $userToken::TYPE_EMAIL_ACTIVATE;
     } elseif ($user->status == $user::STATUS_UNCONFIRMED_EMAIL) {
         $userTokenType = $userToken::TYPE_EMAIL_CHANGE;
     }
     // check if we have a userToken type to process, or just log user in directly
     if ($userTokenType) {
         $userToken = $userToken::generate($user->id, $userTokenType);
         if (!($numSent = $user->sendEmailConfirmation($userToken))) {
             // handle email error
             //Yii::$app->session->setFlash("Email-error", "Failed to send email");
         }
     } else {
         Yii::$app->user->login($user, $this->module->loginDuration);
     }
 }
All Usage Examples Of amnah\yii2\user\models\User::sendEmailConfirmation