Рассылка Sendex
Всем привет.
Имеется следующая задача: Автоматически добавлять пользователя в рассылку и удалять из нее по ссылке отписки.
При создании заказа в minishop автоматом e-mail вносится в систему. Можно ли как-нибудь перехватить данное событие и при внесении пользователю назначать его в нужную мне группу?
И сделать чтобы если пользователя удалили из подписки, он туда больше не попадал, если только не назначить вручную.
Или может у кого есть более красивый метод???
Спасибо
Имеется следующая задача: Автоматически добавлять пользователя в рассылку и удалять из нее по ссылке отписки.
При создании заказа в minishop автоматом e-mail вносится в систему. Можно ли как-нибудь перехватить данное событие и при внесении пользователю назначать его в нужную мне группу?
И сделать чтобы если пользователя удалили из подписки, он туда больше не попадал, если только не назначить вручную.
Или может у кого есть более красивый метод???
Спасибо
Комментарии: 1
Реализовал сам, но не знаю на сколько верно.
1. Создал плагин на событие сохранения нового пользователя.
При сохранении данный пользователь добавляется в рассылку Sendex и дополнительно вносится в группу рассылок
2. Сделал кнопку отписаться в письме, при которой происходит удаления из рассылки + удаления из группы рассылок.
Оцените верно все сделал…
И еще в Sendex столкнулся с неприятностью — нет кнопки удаления всех пользователей из рассылки разом.
1. Создал плагин на событие сохранения нового пользователя.
При сохранении данный пользователь добавляется в рассылку Sendex и дополнительно вносится в группу рассылок
switch ($modx->event->name) {
case 'OnUserSave':
if ($user && $mode == 'new') {
if ($profile = $user->getOne('Profile')) {
$id = $profile->get('id');
$new_mail = $profile->get('email');
}
if ($id) {
/*******Добавляем в группу рассылки новый сохраняемого пользователя**********/
if ($gr = $modx->newObject('modUserGroupMember')) {
$gr->set('user_group', 2);
$gr->set('member', $id);
$gr->set('role', 0);
$gr->set('rank', 0);
$gr->save();
}
/*******Добавляю текущего сохраняемого пользователя в рассылку SENDEX*********/
$template=2;
$hash = sha1(uniqid(sha1($id . $template . $new_mail), true));
$sql1 = 'INSERT INTO modx_sendex_subscribers (user_id,email,newsletter_id,code) VALUES('.$id.',"'.$new_mail.'",'.$template.',"'.$hash.'")';
$query = new xPDOCriteria($modx, $sql1, array());
if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
}
}
break;
}
2. Сделал кнопку отписаться в письме, при которой происходит удаления из рассылки + удаления из группы рассылок.
$id = $_GET['id'];
if (isset($id)) {
/*******Удаляю из группы рассылок**********/
$sql2 = 'DELETE FROM modx_member_groups where member='.$id.' AND user_group=2';
$query = new xPDOCriteria($modx, $sql2, array());
if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
/*******Удаляю из рассылок в SENDEX*********/
$sql1 = 'DELETE FROM modx_sendex_subscribers where user_id='.$id.' ';
$query = new xPDOCriteria($modx, $sql1, array());
if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
}
Оцените верно все сделал…
И еще в Sendex столкнулся с неприятностью — нет кнопки удаления всех пользователей из рассылки разом.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.