Перед подпиской пользователя на рассылку выполняется условие подписки. В условие подписки нужно писать «чистый» 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>