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

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «== Задача == Сделать так, чтобы после отправки вебформы введенный пользователем e-mail подпис…»)
(нет различий)

Версия 11:47, 24 января 2010

Задача

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