Создать скрытые поля для Contact Form 7
9 августа 2014 в 4:58 в категории Статьи о php 5 комментариевПлагин Contact Form 7 является одним из самых популярных модулей для WordPress для создания формы обратной связи. Тут просто создаются и редактируются поля, настраивается формат письма и многое другое. НО! К сожалению, не знаю почему, разработчики решили не добавлять скрытый тип поля (<input type=»hidden» …>).
Для чего он нужен? Ну например чтобы передавать данные о пользователе (IP, браузер и т.п.), данные о странице откуда отправили форму, или откуда перешли чтобы отправить форму (какая страница поспособствовала переходу в раздел контактов) и еще куча возможных применений!
Все это вы можете себе позволить, написав просто обработку нового shortcode (тега, шорт кода) в шаблоне контактной формы. По-умолчанию существуют такие теги как text, email, textarea, которые также сопровождаются параметрами: обязательное или не обязательное поле и многое другое.
Теперь мы создадим новый тег hidden и в шаблоне добавим его как обычный тег с именем [hidden inputName]. Само имя тега inputName мы внесем в тело нашего сообщения. И остается только в файле functions.php прописать следующий код для обработки shortcode‘а:
// Register new shortcode for getting pages where contact form was send function hidden($tag) { if ( ! is_array( $tag ) ) return ''; if($tag['name'] == "referer"){ $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } $html = '<input type="'.$tag['basetype'].'" name="' . $tag['name'] . '" value="'.$pageURL.'" />'; }else{ $html = '<input type="'.$tag['basetype'].'" name="' . $tag['name'] . '" value="" />'; } return $html; } if(function_exists("wpcf7_add_shortcode")){ wpcf7_add_shortcode('hidden', 'hidden', true); }
В данном примере функции рассмотрен вариант отправки адреса страницы, откуда была отправлена форма, в случае если поле называется referer, в противном случае будет выводиться пустое скрытое поле, таким образом вы можете подвязать для себя по названию несколько скрытых полей.
На этом вроде все, если возникают вопросы — пишите в раздел вопросов и ответов, пишите комментарии, ставьте лайки!
Удачного коддинга!
5 комментариев
Приветствую! А как сделать, чтобы с contact Form отправлялась на почту ключевая фраза и запрос который ввёл пользователь??
Создать соответствующие поля и добавить их в форму письма.
functions.php добавил код, в шаблоне формы пишу строку [hidden inputName], в письме строку inputName, в письме приходит просто текст inputName, что не так делаю??? Не шарю, но очень надо, подскажите подробней, будьте добры!)
В поле тела формы вставляете [hidden your-input-name]
В поле тела письма вставляете [your-input-name]
Там же по умолчанию пример есть.
Спасибо за ответ, но не пашет… Хоть убей, видать руки кривые)))