Насколько вы помните, наша регистрационная ссылка передает название выбранного события регистрационной форме посредством специальной переменной (через запрос GET). На текущий момент никакого стандартного способа отлова значения этой переменной в панели администрирования cforms не существует, однако на этот случай имеется специальный «взлом» cforms, который позволит нам удостовериться, что мы можем передавать произвольные переменные в форму.
Cforms II может принимать небольшие, заключенные в фигурные скобки шаблонные названия переменных. К примеру, добавление переменной {Title} выведет нам заголовок записи или страницы, на которой находится форма. Нам необходимо передать заголовок записи с другой страницы (чтобы не добавлять вручную форму ко всем записям рубрики Event), поэтому мы создадим собственный шаблон переменной для плагина cforms II.
В папке с плагином cforms II находится файл lib_aux.php. Откроем его и найдем строку 421, в которой должен стоять следующий код: … $m = str_replace( ‘{BLOGNAME}’, …
Добавим после него:
... $m = str_replace( '{Event}', esc_attr($_GET['evnt']), $m ); ...
Теперь в панели администрирования cforms мы можем установить в поле Event нашей регистрационной формы переменную {Event}. Также нужно удостовериться в том, что это поле доступно только для чтения.
Также я хотел бы, чтобы название события отображалось и в заголовке формы, для внесения большей ясности в процесс регистрации. Заголовок не является частью cforms, однако является частью шаблона страницы. Откроем в каталоге с темой файл registration-page.php и после тега the_title(), стоящего приблизительно в 41 строке, добавим следующий код:
... <h2><?php the_title(); ?> for: <?php $evnt = esc_attr($_GET['evnt']); echo $evnt;?></h2> ...
Теперь, при запуске формы вы увидите название события в ее заголовке, а также поле, недоступное для пользовательского редактирования. Администратор, получивший данные из формы, сможет понять, на какое событие был зарегистрирован человек.
Подведем небольшие итоги: у нас есть страница Event, позволяющая зарегистрироваться на предстоящие события, а также форма, загружаемая в модальном окне. Мы выполнили огромную работу! Давайте еще немного усовершенствуем наш проект.