Перед подпиской пользователя на рассылку выполняется условие подписки. В условие подписки нужно писать «чистый» php-код. Если после выполнения этого кода переменная $posting станет равный 0, то подписки не произойдет, а пользователю будет выведен текст, содержащейся в переменной $warnText.
Примеры:
// Проверяем, подписан ли авторизованный пользователь (заменить "2" на номер подписки в вашем сайте) if ($nc_core->db->query("SELECT * FROM `Subscriber_Mailer` AS `sm`, `Subscriber_Subscription` AS `ss` WHERE ss.`Mailer_ID` = sm.`Mailer_ID` AND ss.`Mailer_ID` = 2 AND ss.`User_ID` = $AUTH_USER_ID") ) { $posting = 0; echo "Вы уже подписаны на новости."; }
// если пользователь уже подписался, то отпишем его от этой рассылки $nc_subscriber = nc_subscriber::get_object(); if ($nc_subscriber->is_subscribe_to_cc($cc)) { $mailer_id = $nc_subscriber->get_mailer_by_cc($cc, 'Mailer_ID'); $nc_subscriber->subscription_delete_by_mailer($mailer_id); $posting = 0; $warnText = "Вы успешно отписались"; }
Перед формированием письма для каждого пользователя выполняется условие рассылки. Если по окончанию выполнения условия рассылки переменная $posting окажется равной 0, то письмо не будет отправлено.
Пример:
Необходимо отправлять письма только тем пользователям, у которых значние Rating больше 100.
В условии рассылки:
if ( $current_user['Rating'] <= 100 ) { $posting = 0; }
В условии можно использовать следующие переменные:
Переменная | Описание |
---|---|
$current_user | массив с параметрами пользователя, которому отправляется письмо |
$mailer | массив с информации о рассылке |
Ключи массива $current_user:
Параметр | Описание |
---|---|
User_ID | номер пользователя |
PermissionGroup_ID | главная группа пользователя |
Permission_Group | массив со номерами всех групп пользователя |
Checked | пользователь включён или выключен |
Language | язык пользователя |
Created | дата и время регистрации пользователя |
LastUpdated | дата и время последнего изменения пользователя |
Auth_Hash | ключ для авторизации по хэшу |
Также массив содержит все значения дополнительных полей. Поля задаются в системной таблице «Пользователи». Ключ массива в этом случае соответствует имени поля (если в системной таблице «Пользователи» есть поле целого типа с латинскими именем Rating, то в условии подписки будет доступен элемент массива $current_user['Rating'], содержащий значение этого поля).
Для некоторых типов полей будут доступны еще некоторые элементы.
Для полей типа «Список»и «Множественный список» доступны идентификаторы выбранных элементов через $current_user['ИмяПоля_id'].
Для поля типа «Файл»:
$current_user['ИмяПоля_name'] – оригинальное имя файла; $current_user['ИмяПоля_type'] – тип файла; $current_user['ИмяПоля_size'] – размер файла; $current_user['ИмяПоля_url'] – реальный путь до файла
Переменная | Описание |
---|---|
$current_user | массив с параметрами пользователя, которому отправляется письмо |
$mailer | массив с информации о рассылке |
$current_catalogue, $current_sub, $current_cc | используются для подписки на раздел |
$nc_status | статус подписки ( 'on' — включена, 'wait' — требуется подтверждение) |
Пример:
".( $nc_status == 'on' ? "Вы успешно подписались." : "На ваш email отправлено письмо с ссылкой для подтверждения подписки")." <br/><br/> <a href='".$current_sub['Hidden_URL']."'>Вернуться к новостям</a>