Автоматическая подписка на рассылку после отправки вебформы

Материал из Umicms

Перейти к: навигация, поиск

Задача

Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подписывался на рассылки.

Решение

Добавить в шаблон вебформы ячейку

<div>
<input class="checkbox" type="checkbox" name="autosubscribe" id="autosubscribe" value="Подписаться на рассылки компании" checked="checked" />
<label class="inline" for="autosubscribe">Подписаться на рассылки компании</label>
</div>

Разместить кастомные макросы, перехватывающие событие отправки вебформы, в директорию ~/classes/modules/dispatches/

__custom.php:

<?php
 
	abstract class __custom_dispatches {
 
		//TODO: Write here your own macroses
 
 
		public function autoSubscribe(umiEventPoint $event) {
			$email = $event->getParam("email");
			$fio = $event->getParam("fio");
 
			list($lname, $fname) = split(" ", $fio);
 
			if(getRequest("autosubscribe")) {
				return $subscriber_id = $this->import_subscriber($email, $fname, $lname);
			} else {
				return false;
			}
		}
	};
 
?>

custom_events.php:

<?php
$listener = new umiEventListener("webforms_post", "dispatches", "autoSubscribe");
?>
Личные инструменты