Отправка письма после регистрации (если даже не нужно подтверждать почту)

 
Посетитель
small user social cms
Медаль
Сообщений: 272
Ребят. Я тут хочу немного улучшить отправку писем.
Сейчас: письмо после регистрации присылается только в том случае, если нужно подтвердить email. Это не гуд для тех, кто работает с email маркетингом.
Хочу: чтобы даже в случае, когда не нужно подтверждать почту, сообщение о регистрации приходило на почту.
Что сделал:
1. создал шаблон сообщения
2. в файле system/conrollers/auth/actions/register.php дописал это:

Код PHP:
  1.  
  2. if ($result['success']){
  3.  
  4. // отправляем письмо об удачной регистрации
  5.  
  6. if (!$this->options['verify_email']){
  7.  
  8. $messenger = cmsCore::getController('messages');
  9. $to = array('email' => $user['email'], 'name' => $user['nickname']);
  10. $letter = array('name' => 'reg_seccess');
  11.  
  12. $messenger->sendEmail($to, $letter, array(
  13. 'nickname' => $user['nickname'],
  14. 'page_url' => href_to_abs('/'),
  15.  
  16. ));
  17.  
  18. }
  19.  
  20.  
  21. $user['id'] = $result['id'];
  22.  
  23. cmsUser::addSessionMessage(LANG_REG_SUCCESS, 'success');
  24.  
  25. // отправляем письмо верификации e-mail
  26. if ($this->options['verify_email']){
  27.  
  28. $messenger = cmsCore::getController('messages');
  29. $to = array('email' => $user['email'], 'name' => $user['nickname']);
  30. $letter = array('name' => 'reg_verify');
  31.  
  32. $messenger->sendEmail($to, $letter, array(
  33. 'nickname' => $user['nickname'],
  34. 'page_url' => href_to_abs('auth', 'verify', $user['pass_token']),
  35. 'valid_until' => html_date(date('d.m.Y H:i', time() + ($this->options['verify_exp'] * 3600)), true),
  36. ));
  37.  
  38. cmsUser::addSessionMessage(sprintf(LANG_REG_SUCCESS_NEED_VERIFY, $user['email']), 'info');
  39.  
  40. } else { ...
  41.  
Правильно ли я оформил код, и что нужно сделать еще?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Можно спросить, что такое верификация?
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora:

Можно спросить, что такое верификация?
проверка email
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Azami, Понятно, спасибо.Тогда по моему вы неправильно сделали.Условие
Код PHP:
  1. if ($result['success']){
является следствием этой самой верификации.Отправку вашего письма следует убрать из проверки условия.И проверку тоже при этом убрать.Т.е. сейчас есть проверка на галочку в админке
Код PHP:
  1. if ($this->options['verify_email']){
И все остальные действия - результат этой проверки до строки
Код PHP:
  1. } else {
  2. $errors = $result['errors'];
  3. }
Т.е. вам следует ваш код вставить до
Код PHP:
  1. if ($result['success']){
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora, разве?
Код PHP:
  1. if ($this->options['verify_email']){
это условие при условии что
Код PHP:
  1. if ($result['success']){
Т.е. уловие
Код PHP:
  1. if ($this->options['verify_email']){
следствие условия
Код PHP:
  1. if ($result['success']){
Зачем убирать все это? Если убрать часть кода, тогда при условии подтверждения почты ничего отправляться не будет.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Azami, внимательно читаем пост. .
Azami:
Код PHP:

if ($this->options['verify_email']){

это условие при условии что
Код PHP:

if ($result['success']){
Нет наоборот.
Это у вас сейчас ничего не отправиться, если убрать галочку.

P.S. хотя не в коей мере не претендую на истину в последней инстанции
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora, Внесу ясность, письмо для подтверждения почты и письмо об успешной регистрации (без верификации) - это 2 разных письма.
Верно?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Azami:
Lora, Внесу ясность, письмо для подтверждения почты и письмо об успешной регистрации (без верификации) - это 2 разных письма.
Верно?
Я откуда знаю, что у вас там за письма.Я отталкиваюсь от вашего кода. Вы своё письмо поместили в условие
Код PHP:
  1. if ($result['success']){
  2.  
А что у вас находиться в переменной $result? Смотрим код
Код PHP:
  1. $result = $users_model->addUser($user);
Это обращение модели к методу, параметром которого выступает переменная $user, смотрим что у нас в $user? А в $user у нас результат проверки
Код PHP:
  1. if ($this->options['verify_email']){
Или что то не так?
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora, И что же делать, чтобы и при проверке почты и без нее письмо отправлялось?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Я уже отвечал на этот вопрос, и если вы не удовлетворены значит я что то не догоняю с вашими письмами, а с email маркетингом точно.Для чего например второе письмо, если галочка не стоит и юзер заносит в поле левый email? Если вы объясните, то возможно что нибудь придумаем.
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora, Оно нужно для отправки приветственного письма. С небольшим обзором системы.
Такие письма приходят человеку сразу же после первого контакта с компанией. Этот вид писем необходимо отправлять клиенту незамедлительно, обычно они кроме стандартной информации о компании могут содержать некие приманки, чтобы стимулировать нового клиента к дальнейшему сотрудничеству.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Azami, Это понятно, непонятно другое.Что требуется от системы?Как это связанно с верификацией? Если никак, то вставьте код отправки своего письма куда нибудь в конец файла перед закрывающийся скобкой условия
Код PHP:
  1. if ($is_submitted){...}
и всё. Тогда каждый раз как юзер кликнет по кнопки "зарегиться" будет отправляться письмо.
Редактировалось: 1 раз (Последний: 15 января 2016 в 13:32)
Посетитель
small user social cms
Медаль
Сообщений: 272
Lora:

Azami, Это понятно, непонятно другое.Что требуется от системы?Как это связанно с верификацией? Если никак, то вставьте код отправки своего письма куда нибудь в конец файла перед закрывающийся скобкой условия
Код PHP:
  1. if ($is_submitted){...}
и всё. Тогда каждый раз как юзер кликнет по кнопки "зарегиться" будет отправляться письмо.

Спасибо, я реализовал так, вставил код после условия if ($result['success']){

Код PHP:
  1. if ($result['success']){
  2.  
  3.  
  4. $messenger = cmsCore::getController('messages');
  5. $to = array('email' => $user['email'], 'name' => $user['nickname']);
  6. $letter = array('name' => 'reg_seccess');
  7.  
  8. $messenger->sendEmail($to, $letter, array(
  9. 'nickname' => $user['nickname'],
  10.  
  11.  
  12. ));
Потому, что перед закрывающей скобкой условия if ($is_submitted){ не сработало.
Правильно ли я написал код приглашения?
Посетитель
small user social cms
Медаль
Сообщений: 272
/
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: