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

Материал из Umicms
Версия от 11:47, 24 января 2010; Sv (обсуждение | вклад) (Новая страница: «== Задача == Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подпис…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Задача

Сделать так, чтобы после отправки вебформы введенный пользователем 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");
?>