Напоминание пользователям о сайте

+71
2.55K
Многие пользователи регистрируются на вашем сайте, и потом по разным причинам не заходят на него уже никогда. Многие из них просто забывают о его существовании.
Чтобы мягко и ненавязчиво напомнить о своем сайте, сделал для себя небольшой хак для отправки сообщений пользователям которые давно не посещали сайт, например написать сообщение, мол уважаемый пользователь, с вашего последнего посещения многое изменилось на нашем сайте и т.д. Приглашаем посетить нас вновь.
Для этого прикрутил форму отправки в панель администратора.
Даное решение не претендует на гениальность, просто сделал для себя за 5 минут, решил поделиться с остальными.
Кого интересует — читаем инструкцию:

1. Сделать копии изменяемых файлов (\admin\applets\users.php; \admin\includes\cp.php)

2. В файле \admin\includes\cp.php находим строчки
  1.  
  2. <li><a class="add" href="index.php?view=usergroups&do=add">Создать группу</a></li>
  3. <li><a class="config" href="index.php?view=components&do=config&link=users">Настройки профилей</a></li>
добавляем ниже
  1. <li><a class="cron" href="index.php?view=users&do=remember">Напоминание о сайте</a></li>
3. В файле \admin\applets\users.php ПЕРЕД if ($do == 'delete'){ вставляем код
  1.  
  2. if ($do == 'remember'){
  3. echo '<div id="rem">
  4. <table width="605" cellpadding="10" cellspacing="0" class="proptable" style="border:none">
  5. <tr><td><strong>Период:</strong>
  6.  
  7. <span class="hinttext">Введите период неактивности пользователей в днях</span>
  8. </td><td><form name="fs" action="" method="post" target="_self">
  9. <input name="days" type="text" size="30" value="30"/></td>
  10. </tr><tr><td><strong>Текст сообщения:</strong>
  11.  
  12. <input name="sub" type="text" size="30"/>
  13. <p><textarea rows="10" cols="45" name="text"></textarea></p>
  14. <input name="send" type="hidden" value="ok" />
  15. <p><input type="submit" value="Отправить"></p> </form>
  16. </td></tr></table></div>
  17. ';
  18. if ($_REQUEST['send']) {
  19.  
  20. $sql = "SELECT * FROM cms_users WHERE logdate <= NOW() - INTERVAL ".$_REQUEST['days']." DAY ";
  21. $result = $inDB->query($sql) ;
  22. while($u = $inDB->fetch_assoc($result)){
  23.  
  24. $inCore->mailText($u[email], $_REQUEST['sub'], $_REQUEST['text']);
  25. } }
  26. }

Как это выглядит:
Иллюстрация
+1
Igor Igor 12 лет назад #
Нужная Вещь!
Спасибо!
0
Александр Александр 12 лет назад #
Отличная вещь.
Вопрос, если выбираем например: неактивности в днях - 30, то отправляет всем кого не было более 30 дней т.е и тем которые заходили например 500 дней назад?
0
Def Def 12 лет назад #
а в каком формате отсылает?
0
Def Def 12 лет назад #
еще бы сделать, чтобы сохранял отправленный, чтобы можно было потом выбрать, отредактировать и отправить снова. А не набирать сообщение постоянно
0
Malstein Malstein 12 лет назад #
если правильно поиграть с ним думаю можно сделать маленький модуль рассылки новостей!) Спасибо
+1
SJen SJen 12 лет назад #
если сервер переварит отправку сообщений большому количеству посетителей)
рассылку новостей так не стоит реализовывать, если, конечно у вас не 100-200 человек в базе
+1
Def Def 12 лет назад #
да, рассылку надо делать "пачками", а не всем скопом. Так то у мен сервер переварит, но вот почтовики могут воспринять как спам, если у вас десятки тыс юзеров.
0
SJen SJen 12 лет назад #
таймаута по времени работы скрипта нет? - и по памяти, которую он может скушать тоже?
ну если такой супер сервер без ограничений, то переварит)
+1
deltas deltas 12 лет назад #
Рассылку не советую, выше написали почему...
0
Anonim Anonim 12 лет назад #
Только мне кажется что такое уже реализовано здесь?
0
lesterkey lesterkey 12 лет назад #
Спасибо! +
+1
deltas deltas 12 лет назад #
Так как написал все это в 4 утра, то многое не реализовал, сейчас еще немного доработаю...
0
lesterkey lesterkey 12 лет назад #
Вопрос может глупый? но как форма воспримет типа " Уважаемый {username}" ?
0
SJen SJen 12 лет назад #
Никак не воспримет, просто отправит то, что напишите. Никакой обработки вашего текста - как напишите, так и отправит.
0
deltas deltas 12 лет назад #
Так и воспримет smile Чтобы каждому отсылать с его именем надо немного поменять например эту строчку
Код PHP:
$inCore->mailText($u[email], $_REQUEST['sub'], $_REQUEST['text']); 
на эту
Код PHP:
$inCore->mailText($u[email], $_REQUEST['sub'], 'Уважаемый '.$u[nickname].$_REQUEST['text']); 
Но это очень грубое решение, так лишь показал куда копать...
0
lesterkey lesterkey 12 лет назад #
Спасибо!
+2
Alexneva Alexneva 12 лет назад #
Спасибо, отличная штука! Но рассылать надо обязательно пакетами по 100 в час, например. Почти у всех хостеров ограничения есть на кол-во рассылки писем в час или в сутки.
0
Man Man 12 лет назад #
У меня было ограничение на 100 челов.
Я написал, что у меня уже 2000 юзеров и нужно разослать новости. Они увеличили лимит до 2000 за час.
0
Олег Олег 12 лет назад #
Здорово. Вот бы встроить в движок
0
qwest qwest 12 лет назад #
Это неплохо было бы реализовать с привязкой к праздничным датам. Рассылка бы выглядела более естественно.
0
flighteasy flighteasy 12 лет назад #
А что Вам мешает отправлять рассылку в праздники, ставя количество дней: 1 или 0
0
Def Def 12 лет назад #
я думаю он про автоматическую рассылку. Т.е установить заранее дату и фильтры (пол, чтобы 23 или 8 марта поздравлять нужных, а не всех)), когда рассылать.

ыбло бы удобно каждый праздник поздравлять юзеров.
0
vitalson9 vitalson9 12 лет назад #
после установки у меня белая страница и написано kernel panic ( паника ядра ) что может быть?
0
deltas deltas 12 лет назад #
ошиблись со вставкой кода наверное...
0
spacer spacer 12 лет назад #
Супер, а можно вместо простого текста, сделать html? Чтобы можно было не просто "нудеть", а направить нормальную, сверстанную замануху?
А еще лучше, с возможностью сегментации, хотябы по половому признаку и типу пользователя.
+2
deltas deltas 12 лет назад #
Все возможно, например подключать через LEFT JOIN таблицу профилей и в зависимости мальчик/девочка отсылать нужное сообщение...
+1
Soul Soul 12 лет назад #
вот это было бы очень кстати!
0
Серега Серега 12 лет назад #
Толично, решение что надо smile +
0
Man Man 12 лет назад #
Люди! В html формате кто-нибудь реализовал?
При рассылке весь текст сбивается в кашу.
Если 1 предложение, то не страшно. Но когда нормальное письмо, то пипец!

Кто-нибудь нашел решение?
-1
Максим Шорин Максим Шорин 12 лет назад #
так ты сам попробуй, html это не так уж и сложно joke
0
Марат Марат 12 лет назад #
Когда то тоже делал напоминание пользователям о существовании сайта. Только по CRON. И письмо можно формировать в html формате.
0
Саша Ангел Саша Ангел 12 лет назад #
У меня после установки и тестовой отправки пришло письмо с ошибкой
vasya@cms.ru
SMTP error from remote mail server after RCPT TO:<vasya@cms.ru>;:

Все настройки перевернул, не могу найти откуда этот адрес((( ни у кого не было похожей ситуации?
0
BlondinkO BlondinkO 12 лет назад #
Спасибо, полезная штука =)
+1
GarikKR GarikKR 12 лет назад #
Огромная просьба к разработчику, пожалуйста адаптируйте для версии 110. Заранее огромное спасибо
0
Константин Г. Константин Г. 11 лет назад #
дада и добавьте очередь отправки
0
Карен М. Карен М. 8 лет назад #

Отлично работает на 1.10.6

Спасибо!
0
Карен М. Карен М. 8 лет назад #

Отлично работает на 1.10.6

Спасибо!

Еще от автора

Обновление компонента "Replacement замена в контенте" + бонус
Как и обещал, поработал над обновлением компонента Replacement.
Replacement - замена в контенте. Компонент для ICMS 2.x
Компонент на основе фильтра "Красивые заметки в тексте" для первой версии. По просьбам пользователей сделал подобное для второй ветки.
Фильтр ICMS Note - Красивые заметки в тексте
Опять же по просьбе Nomin сделал фильтр для создания красивых заметок в тексте.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.