Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Теперь мы команда!

Создать скрытые поля для Contact Form 7

9 августа 2014 в 4:58 Автор: Nikita_Sp в категории Статьи о 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, в противном случае будет выводиться пустое скрытое поле, таким образом вы можете подвязать для себя по названию несколько скрытых полей.

На этом вроде все, если возникают вопросы — пишите в раздел вопросов и ответов, пишите комментарии, ставьте лайки!
Удачного коддинга!

Вверх!

Меню блога

Категории блога

Облако тегов