Обратная связь для сайта html: 3 способа. Как сделать форму обратной связи на html? —

Содержание

Сочинский национальный парк | Туризм с Нами

В России есть немало великолепных природных парков. Среди них особое место занимает Сочинский национальный парк, занимающий площадь в 200 тысяч гектар. Среди все подобных объектов в нашей стране, парк является одним из самых старых. На территории живет большое количество самых разных животных.

Великолепные ландшафты и облюбованная рафтерами река Мзымта, протекающая по территории, сделали парк излюбленным местом для туристов.

История и особенности парка

Предпосылками для создания парка была цель — сохранить уникальный животный и растительный мир Большого Кавказа. Началась реализация этого плана в 1983 году.

В создании заповедника принимали участие несколько регионов и общие усилия позволили не только сохранить природу в текущем виде, но и восстановить часть природных объектов, утраченных ранее.

Среди многочисленных целей, вложенных в объект создателями парка, ставилась задача донести до людей важность сохранения экологи. С этой целью на территории лесничеств постоянно функционируют музейные выставки с меняющимися экспозициями.

Несмотря на стремление сохранить первозданный природный вид, парк адаптирован для прогулок туристов — повсюду проложены дорожки, для преодоления ручьев и оврагов установлены мостики.

Удивительно красивые природные объекты, такие как каньоны, водопады, лесопарковые зоны и пещеры украшают территорию парка и доступны для глаз всех желающих. Среди известных достопримечательностей выделяются Воронцовские и Ахунские пещеры. Когда планируются туры в Сочи , эти названия встречаются часто.

Кроме того, Сочинский национальный парк изобилует подземными реками, сформировавшими причудливые пещеры внутри известняковых пород местных гор.

Растительный мир парка

Для жителей средней полосы особенно удивительными будут высоченные буковые леса, в которых 50-и метровые деревья упираются в небо. Горные склоны усеяны дубовыми рощами, занимающими 25% всей территории парка.

Из числа реликтовых растений здесь распространен европейский каштан.

Сказочный мох, покрывающий значительную часть лесных территорий создает атмосферу таинственности.

Парк «Ривьера», являющийся частью Сочиснкого национального парка, хранит в себе множество редких видов цветов и деревьев, за что сыскал небывалую популярность среди туристов.

Работники парка постоянно трудятся над созданием новых композиций из роз редких видов, специально выращиваемых тут.

Кроны каштанов и сосен спасают путешественников от летней жары, что делает прогулки комфортными в любой зной.

Не страшен здешним местам и приход зимы, даже в этот период есть чем насладиться — запах хвои и цветущих магнолий порадует каждого гостя даже в снежный период. Время цветения магнолий — начало зимы, а высокая влажность воздуха усиливает аромат.

Животный мир Сочинского парка

На территории парка себя прекрасно чувствует множество редких видов животных, занесенных в Красную книгу.

Часть из этих животных в современной природе больше нигде не встречается, например, к ним относится более сотни птиц. Фауна Сочинского парка содержит куниц, европейских косуль, оленей и даже бурого медведя.

Местные водоемы богаты рыбок самых разных видов.

Почти 20 видов пресмыкающихся, населяющих территорию парка, больше нигде не водится, здешние места стали их убежищем.

Миссия сотрудников парка и волонтеров донести до гостей парка всю важность сохранения этого природного богатства.

Активный отдых на территории парка

Территория открыта для туристов, желающих побродить по парку с палатками и остановиться на ночлег в окружении девственных природных ландшафтов. Сочинский национальный парк идеально подходит для подобных путешествий. Большая территория, подробные карты и возможность составить подходящий план-маршрут добавляют рейтинг именно этому парку в глазах экотуристов.

Для гостей доступен как самостоятельный отдых, так и прогулки в составе экскурсионных групп.

Сложность маршрута можно подобрать под индивидуальный запросы. Любители экстрима получат сплав по горным рекам и конные прогулки. Менее рисковые туристы могут насладиться обычными прогулками в лесной тиши по проложенным дорожкам.

Верстка формы обратной связи. Часть 5

Вы здесь: Главная — HTML — HTML 5 — Верстка формы обратной связи. Часть 5

Итак, мы завершаем цикл уроков по версте сайта с нуля с flat дизайном. Напомню, что на первом уроке мы верстали шапку сайта. На втором уроке — секцию с картинкой на весь экран. На третьем уроке — галерею с работами портфолио. На четвертом уроке — трехколоночный макет. И как завершающим этапом, сегодня мы делаем верстку формы обратной связи и подвала.

Верстка формы обратной связи

Вот, что у нас должно получиться.

Я не буду здесь приводить весь код, он слишком большой. Код целиком и готовый результат вы можете увидеть на jsfiddle.

Моя задача показать вам принципы верстки, так сказать логику, как думает верстальщик, глядя на макет.

Сначала он мысленно разбивает весь макет на большие секции. Затем каждую секцию внутри делит на маленькие блоки. Смотрите на скриншоте ниже.

Сама форма обратной связи помещена в теге div с классом part_2_of_3 и занимает она две трети от ширины родителя.

<div>
<div>
<form method="post" action="#">
  <input type="text" name="text" placeholder="Ваше имя">
  <input type="email" name="email" placeholder="Ваш Email">
<div> </div>
<div>
  <textarea name="message" placeholder="Ваше сообщение:"></textarea>
</div>
<span>
  <input type="submit" name="submit" value="Отправить">
</span>
<div></div>
</form>
</div>
</div>

Затем идет второй блок в теге div с классом part_1_of_3. Занимаемая им ширина — соответственно одна треть от родительского блока.

В CSS стилях:

.con{
   display: block;
   float:left;
   margin: 3% 0 3% 1.5%;
}
.con:first-child{
   margin-left:0; /* прижатие блока с формой к левому краю */
}
.part_2_of_3 {
   width: 66%; /* ширина блока с формой */
}
.part_1_of_3 {
   width: 32%; /* ширина блока с информацией */
}
.cont-form{
   padding-bottom: 25px; /* отступ снизу от формы блока */
}
.cont-form div{
   padding: 5px 0 15px;
}
.cont-form input[type="text"],.cont-form input[type="email"],.cont-form textarea{
   width: 42%; /* ширина полей для ввода текста и емейла */
   padding: 15px;
   display: block;
   outline: none;
   background-color: #fff; /* цвет ячеек формы */
   color: #888282; /* цвет вводимого текста формы */
   font-size: 0. 8em; /* размер шрифта вводимого текста формы */
   float:left;
   margin-right: 2em; /* отступ справа */
   font-family: Verdana, sans-serif;
   font-style: italic; /* вводимый текст курсивом */
   border: 2px solid #cacaca; /* граница ячеек формы */
}
.cont-form input[type="email"]{
   margin-right: 0em; /* отступ справа */
}
.cont-form textarea{ /* значения для текстовой области формы */
   padding: 18px; /* все поля в текстовой области */
   display: block;
   width: 93%; /* ширина формы текстовой области */
   height:180px; /* высота формы текстовой области */
   background-color: #fff; /* wdtn фона текстовой области */
   outline: none;
   color: #888282; /* цвет вводимого текста в текстовую область */
   font-size: 0.8em; /* размер шрифта текстовой области */
   font-style: italic; /* курсив для текстовой области формы */
   border:2px solid #cacaca;
   margin-bottom: 2em;
}
. cont-form input[type="submit"] {
   font-family: Verdana, sans-serif;
   font-size: 1em;
   color:#fff;
   padding: 0.7em 1.4em;
   margin-right: 2%;
   background-color: #a97b7b;
   border:none;
   display: block;
   cursor: pointer;
   outline: none;
   text-transform: uppercase; /* трансформация в заглавные буквы */
   float: right;
}
.comp_add p {
   font-size:0.8em;
   color:#525252;
   line-height: 1.8em;
   margin-bottom: 2%;
}
.comp_add a{
   font-size:1.1em;
   color:#525252;
   line-height: 1.8em;
   margin-bottom: 2%;
}
.list2 li img{
   margin-top: 4px;
   float:left;
}
.list2 li .icon{
   float:left;
   padding-left: 1em;
}

Верстка подвала

С версткой подвала дело обстоит намного проще. Внутри тега footer, находится блок div с копирайтом и ссылкой.

<footer>
   <div>
   © 2017 Шаблон <a href="" target="_blank">Valli</a>
   </div>
</footer>

CSS стили

footer {
   background: #303441;
   padding: 24px 0;
}
.copy_val {
   font-size: 0.714em;
   line-height: 1.7em;
   color: #666d89;
   text-align: center;
}
.copy_val a {
   color: #eee;
}
.copy_val a:hover {
   color: #a97b7b;
}

Полный код представлен на фиддле

Смотрите ниже, что в итоге получилось. До новых встреч!

  • Создано 09.11.2017 12:45:00
  • Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov. ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL=»https://myrusakov. ru»]Как создать свой сайт[/URL]

Отправка писем с сайта. Готовое решение. Почтовый скрипт


Предлагаю готовое решение для отправки сообщений с сайта. Любой пользователь сможет легко отправить письмо с любой страницы Вашего сайта, вызвав POP окно по размещенной ссылке или через меню. Предусмотрена КАПТЧА для защиты от спама.

Для установки почтового скрипта необходимо совершить всего три действия:
1. Укачать адрес вашего почтового ящика в файле config.php
2. Залить папку со скриптом на сервер хостинга.
3. Разместить на сайте (в меню) ссылки на вызов формы обратной связи.
Системные требования к хостингу: PHP 4.0.6 и выше, библиотека GB для каптчи (практически на всех хостингах).

Установка завершена.


Теперь форма обратной размещена по адресу: http://ВАШСАЙТ.ru/feedback/
Вызвать ее можно используя скрипт всплывающего POP окна. Для этого использовать готовый код в прилагаемом файле HTML страницы link. html.

Конечно проще купить готовый сайт на основе CMS, допустим: WordPress, Drupal или 1с-Битрикс, где уже встроены системы для отправки сообщений и писем с сайта. Но для тех вебмастеров, которые не ищут легких путей в вебстроительстве, возможно будет полезен скрипт обратной почтовой связи со своего сайта, построенного на html файлах.

Оформление формы обратной связи.

Дизайн
Предложенная форма обратной связи удобна тем, что может быть внедрена в любой дизайн сайта, не изменяя при этом структуру страницы. Файлы скрипта лежат в отдельной папке и не мусорят структуру сайта.
Внешний вид формы настраивается из файла style.css

Защита от спама
При отправке писем с сайта предусмотрен ввод защитного кода КАПТЧА, что предупредит намерения злоумышленников.
Дизайн каптчи можно настроить в файле kcaptcha_config.php

В архиве 2 варианта отправки писем с сайта.
Второй вариант feedback2 — предусматривает получение дубликата письма отправителем. Т.е. посетитель сайта, отправивший сообщение, получит его копию на свой (указанный) email.
Будьте внимательны при установке feedback2: Вашим сайтом могут воспользоваться недоброжелатели для отправки писем от Вашего имени.

Подробное описание установки формы обратной связи на свой сайт
найдете в скаченном архиве:


1. В файле feedback\config.php во 2 строке заменить Ваш@EMAIL.ru на адрес своей почты, на которую желаете получать письма.

2. Залить папку feedback на сайт целиком. Название можно изменить.

Теперь почта установлена и Вы можете отправлять письма с сайта используя адрес:
http://ВАШСАЙТ.ru/feedback/index.php или http://ВАШСАЙТ.ru/feedback/
в зависимости от того, где лежит залитая папка.
Можно размещать в любой директории, лишь бы ссылка вызова формы вела к файлу index.php или папке feedback. Зависит от директив файла .htaccess, если он существует.

Можно проверить работу формы прямо с компьютера, изменив адрес в файле link.html и запустив его в браузере.

Теперь сформируем ссылку, которую можно использовать с любой страницы сайта и POP окно для открытия формы обратной связи.

3. В файле link.html (вне папки feedback) лежит готовая ссылка и скрипт для вызова POP окна. Они выделены комментариями.
— Скрипт вставьте между тегами head на той странице, с которой будет вызываться форма обратной связи.
— В ссылке замените адрес на тот, по которому находится загруженная папка feedback на хостинге.
При необходимости укажите путь к файлу http://??????/feedback/index.php.
Отредактированную ссылку можно разместить в любом месте сайта, на любой странице.

Изощрения


Изменить оформление окна обратной связи можно в файле style.css и feedback/index.php
Изменить сообщения об ошибках при отправке писем можно в файле feedback\config.php

Если Вы хотите отказаться от POP окна, то форму обратной связи можно вставить на отдельную страницу сайта.
Для этого скопируйте в файле feedback/index. php содержимое между комментариями:
<!—Код для формы обр. связи—>
…………..
<!—конец Код для формы обр. связи—>
и вставьте в нужное место.

При этом возможно придется отказаться от параметров таблицы table, div или изменить их. А так же поработать с параметрами в файле style.css и путями его прописки. Но отпадет необходимость в пункте 3.
Все зависит от Вашего умения и вкуса.

Многие параметры адаптированы к капризам браузера Internet Exploler.
Также проверено в работе и адаптировано к браузерам: Mozilla Firefox, Opera, Google Chrome, Safari.

Можете удалить дополнительные кнопки: «Обновить форму» и «Закрыть окно», по отдельности или целиком.
Закомментированы в файле feedback/index.php: <!—Доп. кнопки—>

Если пожелаете, то вставьте после метатег против индексации страниц поисковиками:
<meta name=»robots» content=»noindex»>

Скачать бесплатно готовую форму обратной связи: feedback. rar [325,68 Kb] (cкачиваний: 2851)

Как добавить контактную форму в WordPress | REG.RU

Чтобы посетители вашего сайта могли с вами связаться, можно добавить на сайт свой номер телефона или адрес электронной почты. Пользователю придётся совершить несколько действий: набрать ваш номер или адрес, позвонить и оформить сообщение. Однако этот процесс можно упростить — добавить на сайт контактную форму обратной связи.

Обычно контактная форма состоит из нескольких полей, которые нужно заполнить. Например: «Имя», «Адрес электронной почты», «Текст сообщения». Через контактную форму пользователям будет удобнее с вами связаться: они заполнят необходимые поля и отправят форму в один клик, не нужно звонить или отправлять сообщение на email. Кроме того, посетители смогут подписаться на рассылку вашего сайта, оставить отзыв, заказать товар или услугу.

Для добавления контактных форм на сайт WordPress нужны плагины. Плагинов для добавления контактных форм для WordPress существует огромное множество, но мы расскажем о самом популярном — плагин Contact Form 7. Его установили уже более трёх миллионов пользователей, и он регулярно обновляется. После установки вы сможете добавлять на сайт формы обратной связи. Если вы хотите добавить на сайт на WordPress форму заказа, плагин Contact Form 7 также отлично подойдёт.

Шаг 1. Установите плагин Contact Form 7

  1. 1.

    Войдите в панель управления WordPress.

  2. 2.

    Перейдите на вкладку Плагины — Добавить новый. В поисковой строке введите Contact Form 7 и нажмите Установить:

  3. 3.

    После установки нажмите Активировать:

Готово, вы установили и активировали плагин.

Шаг 2. Создайте форму обратной связи

  1. 2.

    Введите имя новой формы в поле «Введите заголовок».

  2. 3.

    Если вы не хотите вносить изменения в шаблон, нажмите Сохранить и переходите к настройкам письма — шагу 4. Если же вы хотите отредактировать её, то переходите на следующий шаг 3.

Шаг 3. Настройте шаблон формы

В стандартном шаблоне в форму добавлены поля «Ваше имя», «Ваш e-mail», «Тема», «Сообщение» и кнопка Отправить.

Для Contact Form 7 настройка шаблона выглядит следующим образом. В редакторе шаблона можно использовать HTML-код и так называемые теги формы. Теги формы — это шорткоды (короткие коды), которые при публикации преобразуются в HTML-код и добавляют поля формы. Также существуют теги почты для настройки электронной почты. Рассмотрим синтаксис тегов формы и тегов почты.

Синтаксис тега формы

Пример тега формы: [text text-name “Enter your name”]. Он состоит из четырёх частей:

  • Тип (в примере — text) — определяет тип элемента. Если поставить звёздочку после типа, то поле будет обязательным к заполнению: [text* ].
  • Имя (text-name) — название поля ввода.
  • Значение («Enter your name») — необязательно для добавления. Используется для значений по умолчанию, которые находятся в поле (подсказка, что вводить в поле пользователю).

Теги формы вы можете выбрать из списка и добавить их в контактную форму:

Рассмотрим поля, которые можно добавить:

  1. текст — текстовое поле для ввода текста только в одну строку, Например: имя, тема сообщения.
  2. email – адрес электронной почты.
  3. URL — адрес сайта или страницы.
  4. телефон — числовое поле для ввода номера телефона.
  5. номер — числовое поле для ввода (например, количества заказываемого товара).
  6. дата — дата в формате дд.мм.гггг.
  7. текстовая область — поле для ввода текста в несколько строк. Например, отзыв или сообщение от посетителя.
  8. в раскрывающемся меню — выпадающее меню, здесь можно добавить несколько пунктов меню для выбора. Пользователь может выбрать только один пункт.
  9. чекбоксы – чекбоксы, в которых можно выбрать один пункт, несколько или ни одного.
  10. радио кнопка – она похожа на чекбокс — предоставляются варианты для выбора. Пользователь обязательно должен выбрать один вариант из предложенных.
  11. принятие – чекбокс. Пока пользователь не поставит галочку (например, о том, что он согласен с правилами обработки персональных данных), кнопка отправки сообщения будет неактивна.
  12. опрос — CAPTCHA, чтобы убедиться, что форму отправил человек, а не робот. Вы можете задать здесь контрольный вопрос, на который нужно ответить перед отправкой формы. Только когда будет введён правильный ответ, кнопка отправки активируется.
  13. файл — создание кнопки для выбора файла, который можно прикрепить к письму.
  14. отправить — кнопка, при нажатии на которую отправляется форма.

Посмотрите, как можно применить все инструменты, на примере. Ниже приведён код с тегами формы и результат — получившаяся форма заказа Вордпресс:

Синтаксис тега почты

Почтовый тег состоит только из одного слова. Это слово обычно соответствует имени тега формы. Например: [your-name]. Используется при настройке шаблона письма (шаг 4).

Шаг 4. Настройте шаблон письма

Если посетитель вашего сайта заполнит форму и отправит её, то на ваш электронный адрес придёт сообщение с этой формы.

Вы можете настроить это сообщение на вкладке «Письмо». При редактировании используйте почтовые теги:

  • Кому — введите здесь свой адрес электронной почты, на который будут отправляться все отправленные формы.
  • От кого — введите адрес электронной почты, который принадлежит тому же домену, что и ваш сайт.
  • Тема — тема сообщения, которую вводит пользователь.
  • Additional headers — по желанию добавьте дополнительные заголовки. Например: Reply-To: [your-email] — тогда письмо будет отправляться вам и дублироваться отправителю.
  • Тело письма — то, как будет выглядеть отправленное письмо, которое придёт на ваш почтовый ящик. Прикреплённые файлы — если в шаблоне формы вы добавили кнопку для прикрепления файлов, добавьте здесь почтовые теги типа [file], чтобы получить эти файлы.

Шаг 5. Настройте уведомления при отправке формы

На вкладке «Уведомления при отправке формы» вы можете настроить уведомления, которые видит посетитель в различных ситуациях.

Некоторые сообщения — это уведомления о состоянии отправки контактной формы. Например, при успешной отправке пользователь получит сообщение «Спасибо за ваше сообщение. Оно успешно отправлено», а при ошибке отправки — «При отправке сообщения произошла ошибка. Пожалуйста, попробуйте ещё раз позже». Другие сообщения — это уведомления об ошибках заполнения формы «Поле слишком короткое» или «Введён некорректный URL-адрес».

В уведомлениях можно использовать только текст. Но также можно добавить почтовые теги. Например, настройте уведомление «Спасибо, [your-name], вы отправили форму!» Когда пользователь при заполнении формы введёт своё имя [your-name], то в сообщении при отправке тег заменится на его имя.

Сохраните отредактированную форму.

Готово, вы настроили и сохранили форму.

Шаг 6. Добавьте форму на сайт

  1. 1.

    Перейдите на вкладку Contact Form 7 — Контактные формы. Рядом с вашей контактной формой находится шорткод. Скопируйте его:

  2. 3.

    Добавленная форма (здесь стандартная) будет выглядеть в режиме предпросмотра и на сайте таким образом:

Готово, вы добавили контактную форму WordPress Contact Form 7 на сайт. Теперь посетители сайта смогут воспользоваться ей, а данные со всех заполненных форм придут на ваш email.

Помогла ли вам статья?

6 раз уже помогла

Руководство часть 9: Работа с формами — Изучение веб-разработки

На этом уроке мы покажем вам процесс работы с HTML-формами в Django. В частности, продемонстрируем самый простой способ построения формы для создания, обновления и удаления экземпляров модели. При этом мы расширим сайт  местной библиотеки, чтобы библиотекари могли обновлять книги, создавать, обновлять и удалять авторов, используя наши собственные формы (а не возможности приложения администратора).

Необходимые условия: Завершите все предыдущие учебные темы, в том числе Django руководство часть 8: Аутентификация пользователя и права доступа.
Цель: Научиться понимать, как создавать формы, чтобы получать информацию от пользователей и обновлять базу данных. Узнать, как обобщенные классы отображения форм могут значительно упростить процесс создания форм при работе с одной моделью.

HTML форма — это группа из одного или нескольких полей/виджетов на веб-странице, которая используется для сбора информации от пользователей для последующей отправки на сервер. Формы являются гибким механизмом сбора пользовательских данных, поскольку имеют целый набор виджетов для ввода различных типов данных, как то: текстовые поля, флажки, переключатели, установщики дат и т. д. Формы являются относительно безопасным способом взаимодействия пользовательского клиента и сервера, поскольку они позволяют отправлять данные в POST-запросах, применяя защиту от Межсайтовой подделки запроса (Сross Site Request Forgery — CSRF)

Пока что мы не создавали каких-либо форм в этом учебнике, но мы встречались с ними в административной панели Django —  например, снимок экрана ниже показывает форму для редактирования одной из наших моделей книг (Book), состоящую из нескольких списков выбора и текстовых редакторов.  

Работа с формами может быть достаточно сложной! Разработчикам надо описать форму на HTML, проверить ее валидность, а также, на стороне сервера, проверять введенные пользователем данные (а возможно и на стороне клиента), далее, в случае возникновения ошибок необходимо опять показать пользователю форму и, при этом, указать на то, что пошло не так, в случае же успеха проделать с данными необходимые операции и каким-то образом проинформировать об этом пользователя. Django, при работе с формами, берет большую часть, описанной выше работы, на себя. Он предоставляет фреймворк, который позволяет вам определять форму и ее поля программно, а затем использовать эти объекты и для генерации непосредственно кода HTML-формы, и для контроля за процессом валидации и других пользовательский взаимодействий с формой.

В данной части руководства мы покажем вам несколько способов создания и работы с формами и, в частности, как применение обобщенных классов работы с формой могут значительно уменьшить необходимый объем работы. Кроме того, мы расширим возможности нашего сайта LocalLibrary, путем добавления функционала для библиотекарей, который будет позволять им обновлять информацию — добавим страницы для создания, редактирования, удаления книг и авторов (воспроизведем и расширим стандартные возможности административной части сайта).

Начнем мы с краткого обзора Форм HTML. Рассмотрим простую форму HTML, имеющую поле для ввода имени некоторой «команды» («team»), и, связанную с данным полем, текстовой меткой:

Форма описывается на языке HTML как набор элементов, расположенных внутри парных тэгов <form>...</form>. Любая форма содержит как минимум одно поле-тэг input типа type="submit".

<form action="/team_name_url/" method="post">
    <label for="team_name">Enter name: </label>
    <input type="text" name="name_field" value="Default name for team.">
    <input type="submit" value="OK">
</form>

Здесь у нас только одно поле для ввода имени команды, но форма может иметь любое количество элементов ввода и, связанных с ними, текстовых меток. Атрибут элемента type определяет какого типа виджет будет показан в данной строке. Атрибуты name и  id используются для однозначной идентификации данного поля в JavaScript/CSS/HTML, в то время как value содержит значение для поля (когда оно показывается в первый раз). Текстовая метка добавляется при помощи тэга label (смотрите «Enter name», в предыдущем фрагменте) и имеет атрибут for со значением идентификатора id, того поля, с которым данная текстовая метка связана.

Элемент input  с  type="submit" будет показана как кнопка (по умолчанию), нажав на которую, пользователь отправляет введенные им данные на сервер (в данном случае только значение поля с идентификатором team_name). Атрибуты формы определяют каким методом будут отправлены данные на сервер (атрибут method) и куда  (атрибут action):

  • action: Это ресурс/URL-адрес куда будут отправлены данные для обработки. Если значение не установлено (то есть, значением поля является пустая строка), тогда данные будут отправлены в отображение (функцию, или класс), которое сформировало текущую страницу.
  • method: HTTP-метод, используемый для отправки данных: post, или get.
    • Метод POST должен всегда использоваться если отправка данных приведет к внесению изменений в базе данных на сервере. Применение данного метода должно повысить уровень защиты от CSRF.
    • Метод GET должен применяться только для форм, действия с которыми не приводят к изменению базы данных (например для поисковых запросов). Кроме того, данный метод рекомендуется применять для создания внешних ссылок на ресурсы сайта.

Ролью сервера в первую очередь является отрисовка начального состояния формы — либо содержащей пустые поля, либо с установленными начальными значениями. После того как пользователь нажмет на кнопку,  сервер получит все данные формы, а затем должен провести их валидацию. В том случае, если форма содержит неверные данные, сервер должен снова отрисовать форму, показав при этом поля с правильными данными, а также сообщения, описывающие «что именно пошло не так». В тот момент, когда сервер получит запрос с «правильными» данными он должен выполнить все необходимые действия (например, сохранение данных, возврат результата поиска, загрузка файла и тому подобное), а затем, в случае необходимости, проинформировать пользователя.

Как вы видите, создание HTML-формы, валидация и возврат данных, переотрисовка введенных значений, при необходимости, а также выполнение желаемых действий с «правильными данными», в целом, может потребовать довольно больших усилий для того, чтобы все «заработало». Django делает этот процесс намного проще, беря на себя некоторые «тяжелые» и повторяющиеся участки кода!

Управление формами в Django использует те же самые техники, которые мы изучали в предыдущих частях руководства (при показе информации из наших моделей): отображение получает запрос, выполняет необходимые действия, включающие в себя чтение данных из моделей, генерацию и возврат страницы HTML (из шаблона, в который передается контекст, содержащий данные, которые и будут показаны). Что делает данный процесс более сложным, так это то, что серверной части надо дополнительно обработать данные, предоставленные пользователем и, в случае возникновения ошибок, снова перерисовать страницу.

Диаграмма, представленная ниже, демонстрирует процесс работы с формой в Django, начиная с запроса страницы, содержащей форму (выделено зеленым цветом).

В соответствии с данной диаграммой, главными моментами, которые берут на себя формы Django являются:

  1. Показ формы по умолчанию при первом запросе со стороны пользователя.
    • Форма может содержать пустые поля (например, если вы создаете новую запись в базе данных), или они (поля) могут иметь начальные значения (например, если вы изменяете запись, или хотите заполнить ее каким-либо начальным значением).
    • Форма в данный момент является несвязанной, потому что она не ассоциируется с какими-либо введенными пользователем данными (хотя и может иметь начальные значения).
  2. Получение данных из формы (из HTML-формы) со стороны клиента и связывание их с формой (классом формы) на стороне сервера.
    • Связывание данных с формой означает, что данные, введенные пользователем, а также возможные ошибки, при переотрисовке в дальнейшем, будут относиться именно к данной форме, а не к какой-либо еще.
  3. Очистка и валидация данных.
    • Очистка данных  — это их проверка на наличие возможных значений, или вставок в поля ввода (то есть очистка — это удаление неправильных символов, которые потенциально могут использоваться для отправки вредоносного содержимого на сервер), с последующей конвертацией очищеных данных в подходящие типы данных Python.
    • Валидация проверяет, значения полей (например, правильность введенных дат, их диапазон и так далее)
  4. Если какие-либо данные являются неверными, то выполнение перерисовки формы, но на этот раз, с уже введенными пользователем данными и сообщениями об ошибках, описывающих возникшие проблемы.
  5. Если все данные верны, то исполнение необходимых действий (например, сохранение данных, отправка писем, возврат результата поиска, загрузка файла и так далее)
  6. Когда все действия были успешно завершены, то перенаправление пользователя на другую страницу.

Django предоставляет несколько инстументов и приемов, которые помогают вам во время выполнения задач, описанных выше. Наиболее фундаметальным из них является класс Form, который упрощает генерацию HTML-формы и очистку/валидацию ее данных. В следующем разделе мы опишем процесс работы с формами при помощи практического примера по созданию страницы, которая позволит библиотекарям обновлять информацию о книгах.

Примечание: Понимание того, как используется класс Form поможет вам когда мы будем рассматривать классы фреймворка Django, для работы с формами более «высокого уровня».

Данная глава будет посвещена процессу создания страницы, которая позволит библиотекарям обновлять информацию о книгах (в частности, вводить дату возврата книги). Для того, чтобы сделать это мы создадим форму, которая позволит пользователям вводить значение дат. Мы проинициализируем поле датой, равной 3 неделям, начиная с текущего дня, и, для того, чтобы библотекарь не имел возможность ввести «неправильную» дату, мы добавим валидацию введенных значений, которая будет проверять, чтобы введенная дата не относилась к прошлому, или к слишком далекому будущему. Когда будет получена «правильная» дата мы запишем ее значение в поле  BookInstance.due_back.

Данный пример будет использовать отображение на основе функции, а также продемонстрирует работу с классом Form. Следующие разделы покажут изменения, которые вам надо сделать, чтобы продемонстрировать работу форм в проекте LocalLibrary.

Класс Form

Класс Form является сердцем системы Django при работе с формами. Он определяет поля формы, их расположение, показ виджетов, текстовых меток, начальных значений, валидацию значений и сообщения об ошибках для «неправильных» полей (если таковые имеются). Данный класс, кроме того, предоставляет методы для отрисовки самого себя в шаблоне при помощи предопределенных форматов (таблицы, списки и так далее), или для получения значения любого элемента (позволяя выполнять более точную отрисовку).

Объявление класса формы Form

Синтаксис объявления для класса формы Form очень похож на объявление класса модели Model, он даже использует те же типы полей (и некоторые похожие параметры). Это существенный момент, поскольку в обоих случаях нам надо убедиться, что каждое поле управляет правильным типом данных, соответствует нужному диапазону (или другому критерию) и имеет необходимое описание для показа/документации.

Для того, чтобы создать класс с функционалом базового класса Form мы должны импорировать библиотеку forms, наследовать наш класс от класса Form, а затем объявить поля формы. Таким образом, самый простой класс формы в нашем случае будет иметь вид, показанный ниже:

from django import forms

class RenewBookForm(forms.Form):
    renewal_date = forms.DateField(help_text="Enter a date between now and 4 weeks (default 3).")
Поля формы

В  нашем случае мы имеем одно поле типа DateField, которое служит для ввода обновленной даты возврата книги, которое будет отрендерено в HTML с пустым значением и текстовой меткой «Renewal date:«, а также текстовым описанием: «Enter a date between now and 4 weeks (default 3 weeks). » Так как никаких дополнительных опций мы не определяем, то поле будет «получать» даты в следующем формате input_formats: YYYY-MM-DD (2016-11-06), MM/DD/YYYY (02/26/2016), MM/DD/YY (10/25/16), а для отрисовки по умолчанию, будет использовать виджет: DateInput.

Существует множество других типов полей для класса формы, которые по своему функционалу подобны соответствующим им эквивалентам типов полей для классов моделей: BooleanField, CharField, ChoiceField, TypedChoiceField, DateField, DateTimeField, DecimalField, DurationField, EmailField, FileField, FilePathField, FloatField, ImageField, IntegerField, GenericIPAddressField, MultipleChoiceField, TypedMultipleChoiceField, NullBooleanField, RegexField, SlugField, TimeField, URLField, UUIDField, ComboField, MultiValueField, SplitDateTimeField, ModelMultipleChoiceField, ModelChoiceField​​​​.

Общие аргументы для большинства полей перечислены ниже:

  • required: Если True, то данное поле не может быть пустым, или иметь значениеNone. Данное значение установлено по умолчанию.
  • label: Тектовая метка, используемая для рендеринга поля в HTML-код. Если label не определена, то Django попытается создать ее значение при помощи имени поля, переводя первый символ в верхний регистр, а также заменяя символы подчеркивания пробелами (например, для переменной с именем renewal_date, будет создан следующий текст метки: Renewal date).
  • label_suffix: По умолчанию показывает двоеточие после текста метки (например, Renewal date:). Данный параметр позволяет вам указать любой суффикс по вашему желанию.
  • initial: Начальное значение для поля при показе формы.
  • widget: Применяемый виджет для поля.
  • help_text (как показано в примере выше): Дополнительный текст, который может быть показан на форме, для описания того, как использовать поле.
  • error_messages: Список сообщений об ошибках для данного поля. Вы можете переопределить его своими сообщениями, при необходимости.
  • validators: Список функций, которые будут вызваны для валидации, введенного в поле значения.
  • localize: Позволяет осуществить локализацию данных поля формы (например, формат ввода числовых значений, или дат).
  • disabled: Если установлено в True, то поле показывается, но его значение изменить нельзя. По умолчанию равно False.
Валидация

Django предоставляет несколько мест где вы можете осуществить валидацию ваших данных. Простейшим способом проверки значения одиночного поля является переопределение методаclean_<fieldname>() (здесь, <fieldname> это имя поля, которое вы хотите проверить). Например, мы хотим проверить, что введенное значение renewal_date находится между текущей датой и  4 неделями в будущем. Для этого мы создаем метод clean_renewal_date(), как показано ниже:

from django import forms

from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
import datetime 

class RenewBookForm(forms.Form):
    renewal_date = forms.DateField(help_text="Enter a date between now and 4 weeks (default 3).")

    def clean_renewal_date(self):
        data = self.cleaned_data['renewal_date']

        
        if data < datetime.date.today():
            raise ValidationError(_('Invalid date - renewal in past'))

        
        if data > datetime.date.today() + datetime.timedelta(weeks=4):
            raise ValidationError(_('Invalid date - renewal more than 4 weeks ahead'))

        
        return data

Необходимо отметить два важных момента. Первый это то, что мы получаем наши данные при помощи словаря self.cleaned_data['renewal_date'], а затем в конце возвращаем полученное значение, для проведения необходимых проверок. Данный шаг позволяет нам, при помощи валидаторов, получить «очищенные», проверенные, а затем, приведенные к стандартным типам, данные (в нашем случае к типу Python datetime.datetime).

Второй момент касается того случая, когда наше значение «выпадает за рамки» и мы «выкидываем» исключение ValidationError, в котором указываем текст, который мы хотим показать на форме, для случая когда были введены неправильные данные. Пример, показанный выше, оборачивает данный текст при помощи функции перевода Django ugettext_lazy() (импортирумую через _()), которая может вам пригодиться, если вы планируете перевести ваш сайт в будущем.

Примечание: Существует множество других методов и примеров валидации различных форм, которые можно найти в Формы и валидация поля (Django docs). Например, в случае, если у вас имеется много полей, которые зависят один от другого, вы можете переопределить функцию Form.clean() и, при необходимости, «выкинуть» ValidationError. book/(?P<pk>[-\w]+)/renew/$’, views.renew_book_librarian, name=’renew-book-librarian’), ]

Данная конфигурация перенаправит запросы с адресов формата /catalog/book/<bookinstance id>/renew/ в функции с именем renew_book_librarian() в views.py, туда же передаст идентификатор id записи BookInstance в качестве параметра с именем pk. Шаблон соответствует только если pk это правильно отформатированный uiid.

Примечание: Вместо имени «pk» мы можем использовать любое другое, по нашему желанию, потому что мы имеем полный контроль над функцией отображения (которого у нас нет в случае использования встроенного обобщенного класса отображения, который ожидает параметр с определенным именем). Тем не менее имя pk является понятным сокращением от «primary key», поэтому мы его тут и используем!

Отображение

Как было отмечено в разделе Процесс управление формой в Django, отображение должно отрендерить форму по умолчанию, когда она вызывается в первый раз и, затем, перерендерить ее, в том случае, если возникли какие-либо ошибки при работе с ее полями. В случае же успеха, после обработки «правильных» данных отображение перенаправляет пользователя на новую (другую) страницу. Для того чтобы выполнить все эти действия, отображение должно знать вызвано ли оно в первый раз для отрисовки формы по умолчанию, а если это не так, то провести валидацию полученных данных.

Для форм, которые используют POST-запрос при отправке информации на сервер, наиболее общей схемой проверки данного факта является следующая строка кода if request.method == 'POST':. GET-запросу, а также первому запросу формы, в таком случае соответствует блок else. Если вы хотите отправлять свои данные в виде GET-запроса, то в таком случае приемом проверки того факта, что данный запрос первый (или последующий), является получение значения какого-либо поля формы (например, если значение скрытого поля формы пустое, то данный вызов является первым).

Процесс обновления книги приводит к изменению информации в базе данных, таким образом, в соответствии с нашими соглашениями, в таком случае мы должны применять запрос типа POST. Фрагмент кода, представленный ниже, показывает (наиболее общую) схему работы для таких запросов. 

from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
from django.urls import reverse
import datetime

from .forms import RenewBookForm

def renew_book_librarian(request, pk):
    book_inst = get_object_or_404(BookInstance, pk=pk)

    
    if request.method == 'POST':

        
        form = RenewBookForm(request.POST)

        
        if form.is_valid():
            
            
            book_inst.due_back = form.cleaned_data['renewal_date']
            book_inst.save()

            
            return HttpResponseRedirect(reverse('all-borrowed') )

    
    else:
        proposed_renewal_date = datetime.date.today() + datetime.timedelta(weeks=3)
        form = RenewBookForm(initial={'renewal_date': proposed_renewal_date,})

    return render(request, 'catalog/book_renew_librarian.html', {'form': form, 'bookinst':book_inst})

В первую очередь мы импортируем наш класс формы (RenewBookForm), а также другие необходимые объекты и методы:

  • get_object_or_404(): Возвращает определенный объект из модели в зависимости от значения его первичного ключа, или выбрасывает исключение Http404, если данной записи не существует.  
  • HttpResponseRedirect: Данный класс перенаправляет на другой адрес (HTTP код статуса 302). 
  • reverse(): Данная функция генерирует URL-адрес при помощи соответствующего имени URL конфигурации/преобразования и дополнительных аргументов. Это эквивалент Python тэгу url, которые мы использовали в наших шаблонах.
  • datetime: Библиотека Python для работы с датами и временим. 

В отображении аргумент pk мы используем в функцииget_object_or_404() для получения текущего объекта типа BookInstance (если его не существует, то функция, а следом и наше отображение прервут свое выполнение, а на странице пользователя отобразится сообщение об ошибке: «объект не найден»). Если запрос вызова отображения не является POST-запросом, то мы переходим к условному блоку else, в котором мы создаем форму по умолчанию и передаем ей начальное значенияinitial для поля renewal_date (выделено жирным ниже, — 3 недели, начиная с текущей даты).  

    book_inst = get_object_or_404(BookInstance, pk=pk)

    
    else:
        proposed_renewal_date = datetime.date.today() + datetime.timedelta(weeks=3)
        form = RenewBookForm(initial={'renewal_date': proposed_renewal_date,})

    return render(request, 'catalog/book_renew_librarian.html', {'form': form, 'bookinst':book_inst})

После создания формы мы вызываем функцию render(), чтобы создать HTML страницу; передаем ей в качестве параметров шаблон и контекст, который содержит объект формы. Кроме того, контекст содержит объект типа BookInstance, который мы будем использовать в шаблоне, для получения информации об обновляемой книге.

Если все таки у нас POST-запрос, тогда мы создаем объект с  именем form и заполняем его данными, полученными из запроса. Данный процесс называется связыванием (или, биндингом, от англ. «binding») и позволяет нам провести валидацию данных. Далее осуществляется валидация формы, при этом проверяются все поля формы — для этого используются как код обобщенного класса, так и пользовательских функций, в частности нашей функции проверки введенных дат clean_renewal_date().  

    book_inst = get_object_or_404(BookInstance, pk=pk)

    
    if request.method == 'POST':

        
        form = RenewBookForm(request.POST)

        
        if form.is_valid():
            
            book_inst.due_back = form.cleaned_data['renewal_date']
            book_inst.save()

            
            return HttpResponseRedirect(reverse('all-borrowed') )

    return render(request, 'catalog/book_renew_librarian.html', {'form': form, 'bookinst':book_inst})

Если формы не прошла валидацию, то мы снова вызываем функцию render(), но на этот раз форма будет содержать сообщения об ошибках. 

Если форма прошла валидацию, тогда мы можем начать использовать данные, получая их из атрибута формы form.cleaned_data  (то есть, data = form.cleaned_data['renewal_date']). Здесь мы просто сохраняем данные в поле due_back , соответствующего объекта BookInstance.

Важно: Хотя вы также можете получить доступ к данным формы непосредственно через запрос (например request. POST['renewal_date'], или request.GET['renewal_date'] (в случае GET-запроса), это НЕ рекомендуется. Очищенные данные проверены на вредоносность и преобразованы в типы, совместимые с Python.

Последним шагом в части обработки формы представления является перенаправление на другую страницу, обычно страницу «Успех». В нашем случае мы используем объект класса HttpResponseRedirect и функцию reverse() для перехода к отображению с именем 'all-borrowed' (это было домашним заданием в Руководство часть 8: Аутентификация и разграничение доступа). Если вы не создали данную страницу, то просто укажите переход на домашнюю страницу сайта по адресу ‘/’).

Все это необходимо для управления формой как таковой, но нам нужно как-то ограничить доступ к отображению (открыть доступ только библиотекарям). Мы могли бы создать новое разрешение (permission) в классе BookInstancecan_renew«), но мы пойдем простым путем и воспользуемся функцией-декоратором @permission_required  вместе с нашим существующим разрешениемcan_mark_returned.

Окончательный вид отображения показан ниже. Пожалуйста, скопируйте данный текст в нижнюю часть файла locallibrary/catalog/views.py.

from django.contrib.auth.decorators import permission_required

from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
from django.urls import reverse
import datetime

from .forms import RenewBookForm

@permission_required('catalog.can_mark_returned')
def renew_book_librarian(request, pk):
    """
    View function for renewing a specific BookInstance by librarian
    """
    book_inst = get_object_or_404(BookInstance, pk=pk)

    # If this is a POST request then process the Form data
    if request.method == 'POST':

        # Create a form instance and populate it with data from the request (binding):
        form = RenewBookForm(request.POST)

        # Check if the form is valid:
        if form.is_valid():
            # process the data in form. cleaned_data as required (here we just write it to the model due_back field)
            book_inst.due_back = form.cleaned_data['renewal_date']
            book_inst.save()

            # redirect to a new URL:
            return HttpResponseRedirect(reverse('all-borrowed') )

    # If this is a GET (or any other method) create the default form.
    else:
        proposed_renewal_date = datetime.date.today() + datetime.timedelta(weeks=3)
        form = RenewBookForm(initial={'renewal_date': proposed_renewal_date,})

    return render(request, 'catalog/book_renew_librarian.html', {'form': form, 'bookinst':book_inst})

Шаблон

Создайте шаблон, на который ссылается наше отображение (/catalog/templates/catalog/book_renew_librarian.html) и скопируйте в него код, указаный ниже:

{% extends "base_generic.html" %}
{% block content %}

    <h2>Renew: {{bookinst.book.title}}</h2>
    <p>Borrower: {{bookinst.borrower}}</p>
    <p{% if bookinst. is_overdue %}{% endif %}>Due date: {{bookinst.due_back}}</p>

    <form action="" method="post">
        {% csrf_token %}
        <table>
        {{ form }}
        </table>
        <input type="submit" value="Submit" />
    </form>

{% endblock %}

Большая его часть вам знакома из предыдущих частей руководства. Мы расширяем базовый шаблон, а затем замещаем блок содержимого content. У нас имеется возможность ссылаться на переменную {{bookinst}} (и ее поля) поскольку мы передали ее в объект контекста при вызове функции render(). Здесь мы используем данный объект для вывода заголовка книги, дат ее получения и возврата.

Код формы относительно прост. В первую очередь мы объявляем тэгform, затем определяем куда будут отправлены данные (action) и каким способом (method, в данном случае «HTTP POST») — если обратитесь к обзору раздела Формы HTML в верхней части данной страницы, то найдете там замечение, что пустое значние атрибута action, означает, что данные из формы будут переданы обратно по текущему URL-адресу данной страницы  (чего мы и хотим!). Внутри тэга формы мы объявляем кнопку submit при помощи которой мы можем отправить наши данные. Блок {% csrf_token %}, добавленный первой строкой внутри блока формы, является частью фреймворка Django и служит для борьбы с CSRF.

Примечание: Добавляйте {% csrf_token %} в каждый шаблон Django, в котором вы создаете форму для отправки данных методом POST. Это поможет уменьшить вероятность взлома вашего сайта злоумышленниками.

Все что осталось, это указать переменную {{form}}, которую мы передали в шаблон в словаре контекста. Возможно это вас не удивит, но таким образом мы предоставим возможность форме отрендерить свои поля с их метками, виджетами и дополнительными текстами, и в результате мы получим следующее:

<tr>
  <th><label for="id_renewal_date">Renewal date:</label></th>
  <td>
    <input name="renewal_date" type="text" value="2016-11-08" required />
    <br />
    <span>Enter date between now and 4 weeks (default 3 weeks). </span>
  </td>
</tr>

Примечание: Возможно это не очевидно, поскольку наша форма содержит только одно поле, но по умолчанию каждое поле формы помещается в ее собственную строку таблицы (поэтому переменная {{form}} находится внутри тэга table .​​​​​​ Тот же результат можно получить, если воспользоваться следующим вызовом {{ form.as_table }}.

Если вы ввели неправильную дату, то на странице вы должны получить список сообщений об ошибках (показано жирным ниже).

<tr>
  <th><label for="id_renewal_date">Renewal date:</label></th>
   <td>
      <ul>
        <li>Invalid date - renewal in past</li>
      </ul>
      <input name="renewal_date" type="text" value="2015-11-08" required />
      <br />
      <span>Enter date between now and 4 weeks (default 3 weeks).</span>
    </td>
</tr>
Другие варианты применения переменной шаблона form

В простом случае применения {{form}} как показано выше, каждое поле рендерится  в виде отдельной строки таблицы. Кроме того, вы можете отрендерить каждое поле как список элементов ({{form.as_ul}} ), или как параграф ({{form.as_p}}).

Что еще больше вдохновляет, так это то, что вы можете полностью контролировать процесс рендеринга любой части формы, используя для этого дот-нотацию (точку). Например, мы можем получить доступ к следующим полям поля формы renewal_date:

  • {{form.renewal_date}}: само поле.
  • {{form.renewal_date.errors}}: Список ошибок.
  • {{form.renewal_date.id_for_label}}: Идентификатор текстовой метки.
  • {{form.renewal_date.help_text}}: Дополнительный текст.
  • и так далее!

Примеры того как вручную отрендерить формы в шаблонах, а также пробежать циклом по шаблонным полям, смотрите Работы с формами > Ручная работа с формами (Django docs).

Тестирование страницы

Если вы выполнили задание в Django руководство часть 8: Аутентификация и разрешение доступа, то у вас должна быть страница со списком всех книг в наличии библиотеки и данный список (страница) должен быть доступен только ее сотрудникам. На данной странице в каждом пункте (для каждой книги) мы можем добавить ссылку на нашу новую страницу обновления книги.

{% if perms.catalog.can_mark_returned %}- <a href="{% url 'renew-book-librarian' bookinst.id %}">Renew</a>  {% endif %}

Примечание: Помните что, для того чтобы перейти на страницу обновления книги, ваш тестовый логин должен иметь разрешение доступа типа «catalog.can_mark_returned«(возможно надо воспользоваться вашим аккаунтом для суперпользователя).

Вы можете попробовать вручную создать URL-адрес для тестирования, например — http://127.0.0.1:8000/catalog/book/<bookinstance_id>/renew/ (правильный идентификатор записи id для bookinstance можно получить, если перейти на страницу детальной информации книги и скопировать поле id).

Как теперь все это выглядит?

Если все получилось как надо, то форма по умолчанию должна выглядеть следующим образом:

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

Список всех книг с ссылками на странцу обновления данных:

Создание класса формы Form при помощи примера, описанного выше, является довольно гибким способом, позволяющим вам создавать формы любой структуры которую вы пожелаете, в связке с любой моделью, или моделями.

Тем не менее, если вам просто нужна форма для отображения полей одиночной модели, тогда эта самая модель уже содержит большую часть информации, которая вам нужна для построения формы: сами поля, текстовые метки, дополнительный текст и так далее. И чтобы не воспроизводить информацию из модели для вашей формы, проще воспользоваться классом ModelForm, который помогает созадавать формы непосредственно из модели. Класс ModelForm может применяться в ваших отображениях точно таким же образом как и «классический» класс формы Form.

Базовая реализация ModelForm содержит тоже поле как и ваш предыдущий класс формы  RenewBookForm, что и показано ниже. Все что вам необходимо сделать, — внутри вашего нового класса добавить класс Meta и связать его с моделью model (BookInstance), а затем перечислить поля модели в поле fields которые должны быть включены в форму (вы можете включить все поля при помощи fields = '__all__', или можно вопользоваться полем exclude (вместо fields), чтобы определить поля модели, которые не нужно включать).

from django.forms import ModelForm
from .models import BookInstance

class RenewBookModelForm(ModelForm):
    class Meta:
        model = BookInstance
        fields = ['due_back',]

Примечание: Это не выглядит сильно проще, чем просто использовать класс Form (и это действительно так, поскольку мы используем только одно поле). Тем не менее, если вы хотите иметь много полей, то такой способ построения формы может значительно уменьшить количество кода и ускорить разработку!

Оставшаяся часть информации касается объявления полей модели (то есть, текстовых меток, виджетов, текстов, сообщений об ошибках). Если они недостаточно «правильные», то тогда мы можем переопределить их в нашем классе Meta при помощи словаря, содержащего поле, которое надо изменить и его новое значение. Например, в нашей форме мы могли бы поменять текст метки для поля «Renewal date» (вместо того, чтобы оставить текст по умолчанию: Due date), а кроме того мы хотим написать другой вспомогательный текст. Класс Meta, представленный ниже, показывает вам, как переопределить данные поля. Кроме того, при необходимости, вы можете установить значения для виджетов widgets и сообщений об ошибках error_messages.

class Meta:
    model = BookInstance
    fields = ['due_back',]
    labels = { 'due_back': _('Renewal date'), }
    help_texts = { 'due_back': _('Enter a date between now and 4 weeks (default 3).'), } 

Чтобы добавить валидацию, вы можете использовать тот же способ как и для класса Form — вы определяете функцию с именем  clean_field_name() из которой выбрасываете исключение ValidationError, если это необходимо. Единственным отличием от нашей оригинальной формы будет являться то, что поле модели имеет имя due_back, а не «renewal_date«.

from django.forms import ModelForm
from .models import BookInstance

class RenewBookModelForm(ModelForm):
    def clean_due_back(self):
       data = self. cleaned_data['due_back']

       
       if data < datetime.date.today():
           raise ValidationError(_('Invalid date - renewal in past'))

       
       if data > datetime.date.today() + datetime.timedelta(weeks=4):
           raise ValidationError(_('Invalid date - renewal more than 4 weeks ahead'))

       
       return data

    class Meta:
        model = BookInstance
        fields = ['due_back',]
        labels = { 'due_back': _('Renewal date'), }
        help_texts = { 'due_back': _('Enter a date between now and 4 weeks (default 3).'), }

Теперь класс RenewBookModelForm является функциональным эквивалентом нашему предыдущему классу RenewBookForm. Вы можете импортировать и использовать его в тех же местах, где и RenewBookForm.

Алгоритм управления формой, который мы использовали в нашей функции отображения, является примером достаточно общего подхода к работе с формой. Django старается абстрагировать и упростить бульшую часть данной работы, путем широкого применения обобщенных классов отображений, которые служат для создания, редактирования и удаления отображений на основе моделей. Они не только управляют поведением отображения, но, кроме того, они из вашей модели автоматически создают класс формы  (ModelForm).

Примечание: В дополнение к отображениям для реактирования, описываемых здесь, существует также класс FormView, который по своему предназначению находится где-то между «простой» функцией отображения и другими обобщенными отображенями, то есть в каком-то смысле, в диапазоне: «гибкость» против «усилия при программировании». Применяя FormView, вы все еще нуждаетесь в создании класса Form, но вам не нужно реализовавыть весь «стандартный» функционал работы с формой. Вместо этого, вы должны просто реализовать функцию, которая будет вызвана в тот момент, когда станет понятно, что получаемые из формы данные, «правильные» (валидны).

В данном разделе мы собираемся  использовать обобщенные классы для редактирования, для того, чтобы создать страницы, который добавляют функционал создания, редактирования и удаления записей типа Author из нашей библиотеки — предоставляя базовый функционал некоторых частей административной части сайта (это может быть полезно для случаев, когда вам нужно создать административную часть сайта, которая, в отличие от стандартной, была бы более гибкой).

Отображения

Откройте файл отображений (locallibrary/catalog/views.py) и добавьте следующий код в его нижнюю часть:

from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy
from .models import Author

class AuthorCreate(CreateView):
    model = Author
    fields = '__all__'
    initial={'date_of_death':'12/10/2016',}

class AuthorUpdate(UpdateView):
    model = Author
    fields = ['first_name','last_name','date_of_birth','date_of_death']

class AuthorDelete(DeleteView):
    model = Author
    success_url = reverse_lazy('authors')

Как вы видите, для создания отображений вам надо наследоваться от следующих классовCreateView, UpdateView и DeleteView (соответственно), а затем связать их с соответствующей моделью.

Для случаев «создать» и «обновить» вам также понадобится определить поля для показа на форме (применяя тот же синтаксис, что и для ModelForm). В этом случае мы демонстриурем синтаксис и для показаза «всех» полей, и перечисление их по отдельности. Также вы можете указать начальные значения для каждого поля, применяя словарь пар имя_поля/значение (в целях демонстрации, в нашем примере мы явно указываем дату смерти — если хотите, то вы можете удалить это поле). По умолчанию отображения перенаправляют пользователя на страницу «успеха», показывая только что созданные/отредатированные данные (записи в модели). В нашем случае это, созданная в предыдущей части руководства, подробная информация об авторе. Вы можете указать альтернативное перенаправление при помощи параметра success_url (как в примере с классом AuthorDelete).

Классу AuthorDelete не нужно показывать каких либо полей, таким образом их не нужно и декларировать. Тем не менее, вам нужно указать success_url, потому что, в данном случае, для Django не очевидно что делать после успешного выполнения операции удаления записи. Мы используем функцию reverse_lazy() для перехода на страницу списка авторов после удаления одного из них — reverse_lazy() это более «ленивая» версия reverse().

Шаблоны

Отображения  «создать» и «обновить» используют  шаблоны с именем model_name_form.html, по умолчанию: (вы можете поменять суффикс на что-нибудь другое, при помощи поля template_name_suffix в вашем отображении, например, template_name_suffix = '_other_suffix')

Создайте файл шаблона locallibrary/catalog/templates/catalog/author_form.html  и скопируйте в него следующий текст.

{% extends "base_generic.html" %}

{% block content %}

<form action="" method="post">
    {% csrf_token %}
    <table>
    {{ form.as_table }}
    </table>
    <input type="submit" value="Submit" />

</form>
{% endblock %}

Это напоминает наши предыдущие формы и рендер полей при помощи таблицы. Заметьте, что мы снова используем{% csrf_token %}.

Отображения «удалить» ожидает «найти» шаблон с именем формата model_name_confirm_delete.html (и снова, вы можете изменить суффикс при помощи поля отображенияtemplate_name_suffix). Создайте файл шаблона locallibrary/catalog/templates/catalog/author_confirm_delete.html и скопируйте в него текст, указанный ниже.

{% extends "base_generic.html" %}

{% block content %}

<h2>Delete Author</h2>

<p>Are you sure you want to delete the author: {{ author }}?</p>

<form action="" method="POST">
  {% csrf_token %}
  <input type="submit" value="Yes, delete." />
</form>

{% endblock %}

Настройки URL-адресов

Откройте файл конфигураций URL-адресов (locallibrary/catalog/urls.py) и добавьте в его нижнюю часть следующие настройки:

urlpatterns += [
    url(r'^author/create/$', views. author/(?P<pk>\d+)/delete/$', views.AuthorDelete.as_view(), name='author_delete'),
]

Здесь нет ничего нового! Как вы видите отображения являются классами и следовательно должны вызываться через метод .as_view(). Паттерны URL-адресов для каждого случая должны быть вам понятны. Мы обязаны использовать pk как имя для «захваченного» значения первичного ключа, так как параметр именно с таким именем ожидается классами отображения.

Страницы создания, обновления и удаления автора теперь готовы к тестированию (мы не будем создавать на них ссылки в отдельном меню, но вы, если хотите, можете их сделать).

Примечание: Наблюдательные пользователи могли заметить, что мы ничего не делаем, чтобы предотвратить несанкционированный доступ к страницам! Мы оставили это в качестве упражнения для вас (подсказка: вы можете использовать PermissionRequiredMixin и, либо создать новое разрешение, или воспользоваться нашим прежним can_mark_returned).

Тестирование страницы

Залогиньтесь на сайте с аккаунтом, который позволит вам получить доступ к страницам редактирования данных (и записей) автора.

Затем перейдите на страницу создания новой записи автора: http://127.0.0.1:8000/catalog/author/create/, которая должна быть похожей на следующий скриншот.

Введите в поля значения и нажмите на кнопку Submit, чтобы сохранить новую запись об авторе. После этого, вы должны были перейти на страницу редактирования только что созданного автора, имеющий адрес, похожий на следующий http://127.0.0.1:8000/catalog/author/10.

У вас есть возможность редактирования записей при помощи добавления /update/ в конец адреса подробной информации (то есть, http://127.0.0.1:8000/catalog/author/10/update/) — мы не показываем скриншот, потому что он выглядит в точности также как  страница «создать»!

И последнее, мы можем удалить страницу, добавляя строку /delete/ в конец адреса подробной информации автора (то есть, http://127. 0.0.1:8000/catalog/author/10/delete/). Django должен показать страницу, которая похожа на представленную ниже. Нажмите Yes, delete., чтобы удалить запись и перейти на страницу со списком авторов.

Создайте несколько форм создания, редактирования и удаления записей в модели Book. При желании, вы можете использовать теже структуры как и в случае с моделью Authors. Если ваш шаблон book_form.html является просто копией шаблона author_form.html, тогда новая страница «create book» будет выглядеть как на следующем скриншоте:

Создание и управление формами может быть достаточно сложным! Django делает этот процесс намного проще, предоставляя прикладные механизмы объявления, рендеринга и проверки форм. Более того, Django предоставляет обобщенные классы  редактирования форм, которые могут выполнять практически любую работу по созданию, редактированию и удалению записей, связанных с одиночной моделью.

Существует много чего еще, что можно делать с формами (ознакомьтесь со списком ниже), но теперь вы должны понимать как добавлять базовые формы и создавать код управления формой на вашем сайте.  

Обратная связь как инструмент управления.

Обратная связь как инструмент управления.

 Обратная связь – это инструмент управления персоналом и повышения эффективности бизнес-процессов, который должен учитываться в каждом аспекте любой организации.Это мощный инструмент влияния, с помощью которого осуществляется информационный обмен между руководителем и подчиненными, и позволяет руководителю получать актуальную информацию о последствиях управленческих решений, корректировать работу отдельных сотрудников и целых подразделений.

Опытный руководитель использует обратную связь для того, чтобы добиться максимальной эффективности взаимодействия и результативности работы своих подчиненных: направляет их усилия, выявляет причины сбоев и низкой мотивации сотрудников, подстегивает и воодушевляет. Обратная связь позволяет сотрудникам вносить необходимые корректировки в процесс выполнения работы, а также выступает мощным фактором мотивации, способствуя проявлению удовлетворенности результатами  труда.

Как показывает практика, многие руководители не придают большого значе­ния тому, как именно они предоставляют обратную связь подчиненным, зачастую делая это на лету. И зачастую руководителями становятся высококлассные эксперты в своей профессии, но не имеющие управленческих знаний и навыков. Таким менеджерам бывает сложно грамотно выстроить общение с подчиненными.

А ведь обратная связь должна быть естественным рабочим инструментом ежедневной работы.

ЦЕННОСТЬ ОБРАТНОЙ СВЯЗИ

Обратная связь – это информирование партнера по взаимодействию о восприятии его деятельности другими, реакции на нее, результатах и последствиях этой деятельности; это передача оценочной или поправочной информации о действии, событии или процессе исходному или управляющему источнику.

Потребность в обратной связи естественна для любого человека, будь то топ-менеджер или рядовой сотрудник. Делаю ли то, что нужно компании? Правильно или не очень? Признают ли мои усилия?  Отсутствие обратной связи, равно как и грубое нарушение правил её подачи,  лишает  человека ориентиров в организации  и снижает его желание работать.

Для руководителя обратная связь это инструмент, который позволяет:

  • Выразить признание сотруднику и поддержать его высокую мотивацию;

  • Изменить ожидания, оценку и самооценку сотрудника;

  • Повысить продуктивность и результативность работы;

  • Прояснить цели и уточнить задачи, стоящие перед сотрудником;

  • Понять причины нежелательного поведения сотрудника;

  • Скорректировать поведение сотрудника и ожидания с целью более рационального использования возможностей ситуации;

  • Нацелить сотрудника на развитие в конкретном направлении;

  • Развить взаимопонимание и взаимное доверие;

  • Поддерживать положительную атмосферу в организации;

  • Развить сплоченность и сработанность сотрудников, формируя командный подход к работе;

  • Выявить, что какой-либо процесс или инструмент не обеспечивает нужный результат;

  • Выявить сферы, требующие модернизации, изменения или развития, чтобы обеспечить устойчивый рост и прогресс организации;

  • Выявить уровень удовлетворенности сотрудника работой в компании, коллективе.

В результате обратной связи руководитель получает информацию о ходе выполнения заданий, позволяющую ему своевременно выявлять и решать возникающие организационные проблемы. Он может судить о подчиненных (их настроениях, ожиданиях, способностях, мотивации, планах на ближайшее и отдаленное будущее, оценках и тд.) и о том, как они оценивают стиль и качество управления, личный вклад менеджеров, их авторитет и влияние на организационные и бизнес-процессы.

Для поддержания обратной связи руководителю требуется определенные опыт и навыки конструктивного использования полученной информации; внедрение соответствующих организационных процедур и установления норм; выделение времени на поддержание обратной связи и осмысление ее результатов; проведение изменений по итогам обратной связи.

Распространенные ошибки обратной связи

При предоставлении обратной связи руководителю следует избегать следующих ошибок:

  1. Неконструктивная критика. Грубое и агрессивное осуждение действий подчиненного, излишняя эмоциональность, которая проявляется в виде сарказма, высокомерия, неуважительное отношение может пошатнуть уверенность сотрудника  в себе и подорвать его моральный дух. К примеру, если руководитель поручил подчиненному составить отчет и остался недоволен результатом, в этом случае вместо прямой критики («в этом отчете нет нужной мне информации», «это нужно полностью переделать» ) следует спросить, в чем, по его мнению, заключалась цель задания, удалось ли сотруднику ее достичь, как можно улучшить результат. Прежде чем перейти к предмету критики, признайте определенные достоинства подчиненного, его положительный вклад и достижения, начните с похвалы.

  2. Переход на личности. Руководитель должен следить за тем, чтобы обратная связь, которую он предоставляет подчиненным, касалась исключительно их действий, а не личных качеств. Менеджер, дающий негативную оценку характеру сотрудника (скажем,  «вы слишком резки»), вызывает у этого человека желание защищаться и мысленно противоречить. Критикуйте поступки человека, а не его самого. Одно дело сказать «Ты толковый, мыслящий человек, а поступил не предусмотрительно», другое «Ты идиот, сделал такую глупость!».

  3. Использование только общих фраз. Руководитель, который предоставляет сотруднику обратную связь в форме («вы хороший лидер», «вы проделали серьезную работу» и т.п.), может не достигнуть необходимого результата. Возможно, подчиненный будет польщен комплиментом, но это не даст ему полезной информации о том, что именно он сделал правильно, а что нужно улучшить.

ПРАВИЛА ОБРАТНОЙ СВЯЗИ

Чтобы обратная связь была эффективной, не стоит прибегать к ней, если Вы не подгото­вились к встрече, если у Вас плохое настроение,  либо нет свободного времени.

Прежде, чем давать обратную связь, необходимо понять какой результат Вы хотите получить от разговора с сотрудником. Тогда будет значительно легче правильно построить беседу.  Вне зависимости от цели разговора полезно соблюдать следующие правила:

  1. Изучите всю информацию о вопросе и подготовьтесь к предоставлению обратной связи по следующему алгоритму. Таблица 1.

Таблица 1. Подготовка к предоставлению обратной связи

Вопрос

Ответ (заполняется до встречи  с сотрудником)

Замечания (заполняется по ходу и после встречи)

Чего Вы намерены добиться, предоставляя обратную связь?

1. .

2..

 

Что именно в действиях сотрудников Вы бы желали улучшить?

1….

2….

 

На какие вопросы Вы хотите получить ответ от подчиненного?

1…..

2….

 

Какие сложности могут возникнуть в ходе встречи и как с ними справиться?

1…..

2….

 

Сколько времени понадобиться для встречи?

 

 

 

  1. Обратная связь должна осуществляться в подходящих условиях, доброжелательной обстановке и без внешних помех. По возможности предотвратите прерывания, телефонные звонки и т.д.

  2. Обратная связь должна быть конструктивной. Говорите сначала о том, что хорошо, что и почему плохо и как это надо исправить. Обратная связь в идеале должна содержать выделение сильных сторон в деятельности, поведении сотрудника и слабых сторон — мест, требующих коррекции, резервов в совершенствовании сотрудника. Говорите о том, что можно изменить/добавить на уровне действий, для достижения результата близкого идеалу.

  3. Обратная связь должна быть своевременной и основанной на фактах.
    Давайте обратную связь вскоре после события, которое Вы обсуждаете с сотрудником. Не стоит проводить «Разбор полетов» двух-трехмесячной давности, это вызовет оборонительную реакцию подчиненного. Говорите о конкретном событии. Например: Ты сегодня появился на работе в 10:45. Это уже второй раз за неделю, давай обсудим? А не так: Ты вечно спишь до одиннадцати и постоянно опаздываешь?

  4. Обратная связь должна быть конкретна, четко выражена и понятна Вашему собеседнику. Она должна содержать примеры поведения, а не описывать его общие модели. Не изъясняйтесь общими фразами и не используйте намеки.

  5. Обсуждайте события и действия. Не личность.  

  6. Соблюдайте баланс между положительной и отрицательной оценкой. Начинать следует с «хорошей» части.

  7. Вовлекайте сотрудника  в обсуждение, дайте высказаться.   Вам важно знать его мнение! Просите подчиненного дать свои предложения. Как ты думаешь,  что будет делать Клиент, который  хотел сделать срочный заказ, но не смог дозвониться до  нас в 9:30? Что можно сделать, чтобы исключить повторение таких ситуаций?

  8. Ясно формулируйте выводы и зафиксируйте письменно достигнутое соглашение.

  9. Регулярно проверяйте, выполняются ли договоренности.

  10. Немедленно поддерживайте любые позитивные изменения. Добейтесь их закрепления.

  11. Не забывайте давать обратную связь не только по результату выполнения задания, но и в ходе деятельности.

Ваши встречи с сотрудниками будут более продуктивными, если вы начнете пользоваться этими правилами.

Итак, развитие навыков предоставления и получения обратной связи помогает руководителю создавать атмосферу взаимного доверия и открытости, что способствует конструктивным  изменениям в работе.

Руководитель должен помнить, что при наличии эффективной коммуникации и постоянной обратной связи появляется неограниченный потенциал для совершенствования во всех сферах бизнеса и управления людьми.

Contact Form 7 начало — создание и настройка форм

Один из самых популярных плагинов для создания контактных форм на сайте. Плагин позволяет создавать формы любых видов; очень гибок и удобен в настройке; развивается уже много лет и содержит много наработок.

Создание и показ контактных форм

Создание форм в админке

После установки плагина появится пункт меню «Contact Form 7», через который можно создавать и удалять формы.

Форма на картинке создана при активации плагина автоматически.

Используем форму по умолчанию, для этого создадим страницу «Связаться со мной» и вставим туда шорткод формы.

меню
Лицевая часть сайта

А теперь сохраним статью и посмотрим, как выглядит наша форма (используется тема Twenty Sixteen):

На картинке вид формы после отправленного письма (об этом говорит извещение внизу формы).

Настройка формы (создание сложных форм)

Пример выше показывает как вставить готовую и очень простую форму контактов. А теперь давайте рассмотрим как создать форму посложнее. Для этого вернемся в админку, в менеджер форм и зайдем в редактирование формы по умолчанию.

В верхнем поле — название формы (его видно только в админке), указываем понятное для себя название, например: «Отзыв о сайте», «Форма заявки на работу», «Форма обратной связи» и т.п.

Под заголовком — шорткод. Его используем в записях, для вывода формы.

И ниже — четыре вкладки:

  1. Шаблон формы
  2. Письмо
  3. Уведомления при отправке формы
  4. Дополнительные настройки

Рассмотрим каждую вкладку отдельно.

меню

Шаблон формы

В этой вкладке можно настроить поля и внешний вид формы. Рабочей областью является HTML редактор WP. Только вместо привычных кнопок мы видим кнопки вставки разных полей формы.

Вёрстка формы

Для верстки можно использовать html-теги и шорткоды плагина. Шорткоды добавляют поля формы, а html теги позволяют создать произвольную HTML структуру. К примеру, наша дефолтная форма выглядит так:

<label> Ваше имя (обязательно)
	[text* your-name] </label>

<label> Ваш e-mail (обязательно)
	[email* your-email] </label>

<label> Тема
	[text your-subject] </label>

<label> Сообщение
	[textarea your-message] </label>

[submit "Отправить"]

А при отображении в записи она превратится в такой HTML:

<div role="form" lang="ru-RU" dir="ltr">
	<div></div>
	<form action="/contacts/#wpcf7-f5-p6-o1" method="post" novalidate="novalidate">
		<div>
			<input type="hidden" name="_wpcf7" value="5">
			<input type="hidden" name="_wpcf7_version" value="4. 6">
			<input type="hidden" name="_wpcf7_locale" value="ru_RU">
			<input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f5-p6-o1">
			<input type="hidden" name="_wpnonce" value="6947975280">
		</div>
		<p>
			<label> Ваше имя (обязательно) <br>
				<span>
					<input type="text" name="your-name" value="" size="40" aria-required="true" aria-invalid="false">
				</span>
			 </label>
		</p>
		<p>
			<label> Ваш e-mail (обязательно) <br>
				<span>
					<input type="email" name="your-email" value="" size="40" aria-required="true" aria-invalid="false">
				</span>
			</label>
		</p>
		<p>
			<label> Тема <br>
				<span>
					<input type="text" name="your-subject" value="" size="40" aria-invalid="false">
				</span>
			</label>
		</p>
		<p>
			<label> Сообщение <br>
				<span>
					<textarea name="your-message" cols="40" rows="10" aria-invalid="false"></textarea>
				</span>
			</label>
		</p>
		<p>
			<input type="submit" value="Отправить">
			<span></span>
		</p>
		<div></div>
	</form>
</div>
меню
Синтаксис шорткодов

Давайте кликнем по кнопке «Текст». Открывается окно, где мы можем указать атрибуты текстовому полю. Указываем и жмем «Вставить тег».

Тег [text* your-name] в последствии будет преобразован в текстовое поле с html кодом:

<span>
	<input type="text" name="your-name" value="" size="40" aria-required="true" aria-invalid="false">
</span>

Шорткоды можно удобно создавать через конструктор шорткодов.

Но конструктор не дает возможность изменить шорткод (там можно только создать шорткод). Изменить шорткод можно двумя способами:

  1. удалить и создать с помощью конструктора новый.
  2. изучить синтаксис и исправить шорткод поля вручную.

С конструктором вы и сами разберетесь.

А тут мы разберем синтаксис шорткода.

Для примера рассмотрим тег текстового поля с дополнительными опциями:

[text* client-name id:my-id class:my-class placeholder "Введите имя"]
text(обязательный)
Тип поля: text, select, password, number и т. д. (в данном случае поле текстовое). Определяет, в какой элемент формы будет преобразован наш тег, а значит какой вид данных он будет принимать.
*
Звёздочка делает поле обязательным для заполнения (форма не будет отправлена и отобразиться уведомление о том, что поле надо заполнить).
client-name(обязательный)
Имя поля, используется как атрибут name в input, а так же используется при формировании шаблона отправляемого письма.
id:my-id
Атрибут id в input со значением my-id. Используется для оформления. Может быть только один.
class:my-class
Атрибут class в input со значением my-class. Используется для оформления. Если нужно указать несколько классов, то атрибут надо указывать несколько раз, например class:my-class-1 class:my-class-2.
placeholder «Введите имя»
Использовать текст «Введите имя» как placeholder.

Соблюдайте порядок атрибутов тега: сначала идёт тип поля, затем его имя и только потом дополнительные опции.

меню
Типы полей
  • Текстовые поля: text, email, tel, url, textarea
  • Числовые поля: number, range
  • Поля с датой: date
  • Чекбоксы, радио, списки: checkbox, radio, select
  • Поле с загрузкой файла: file
  • CAPTCHA: captchac и captchar
  • Опросы: quiz
  • Поле «Принять»: acceptance
  • Кнопка «Отправить»: submit
  • Произвольный тип поля

Шаблон письма

Во второй вкладе можно тонко настроить шаблон (вёрстку) и свойства отправляемого письма. В полях данной вкладки можно использовать специальные теги полей формы — это дает возможность передавать в письме указанные в форме данные.

Теги состоят из имен полей из шаблона формы. Например, мы создали текстовое поле с именем: [text fio]. Теперь в шаблоне письма можно использовать тег [fio]. В письме вместо этого тега будет подставлено значение поля, введенное пользователем (ФИО).

Заголовки письма:
  • Кому — электронный ящик, куда будет отправлено письмо. Можно указать сколько угодно ящиков через запятую.

  • От кого — имя и электронный ящик, от кого пришло письмо. Обычно тут указывается почта сервера (например [email protected]).

    Можно указать любую почту, но если домен почты будет отличаться от домена сайта — форма не пройдет проверку и будет «ругаться» на этот параметр, хотя письма всё равно будут отправляться.

  • Тема — Заголовок письма. По нему будет понятно с какой формы были отправлены данные. К примеру, тема письма «Ошибка на сайте», «Заказ обратного звонка» и так далее. Выбираете такой заголовок, чтобы проще было работать с полученными письмами.

  • Дополнительные заголовки — По умолчанию тут прописано Reply-To: [your-email]. Заголовок Reply-To говорит нам, что на этот электронный ящик можно ответить нажав кнопку «Ответить» в почтовой программе, а тег формы [your-email] — это имя поля из шаблона. Указанный пользователем email будет вставлен вместо этого тега. Получится что-то типа Reply-To: [email protected].
Тело письма

Это следующая важная часть данной вкладки. Тут указывается сам текст письма. В тексте используем всё те же теги формы (имена полей из шаблона формы).

Разберем дефолтное письмо:

От: [your-name] <[your-email]>
Тема: [your-subject]

Сообщение:
[your-message] 

--
Отправлено с сайта Изучаем плагин Contact Form 7 (http://test-wp.ru)

У нас было 4 поля, которые заполнял пользователь. После отправки письма теги превратятся в значения и мы получим такое письмо:

От: Дмитрий <[email protected]>
Тема: Вопрос про Contact Form 7

Сообщение:
Привет! У меня возник вопрос по плагину Contact Form 7. Как его настроить?

--
Отправлено с сайта Изучаем плагин Contact Form 7 (http://test-wp. ru)

Существуют ещё специальные теги для шаблона письма, позволяющие сделать ваше письмо более содержательным.

Не обязательные поля в теле письма

Если юзер не заполнит поле, а оно используется в теле письма, то тело письма будет неполным. К примеру в теле написано Человек с города [city], но юзер не заполнил поле [city], а значит в письме мы получим Человек с города ... Такая строка в письме лишняя. Чтобы убрать эту строку из письма, поставьте галочку на пункте «Исключить вывод строк с пустыми тегами сообщения». Обратите внимание, что это сработает только тогда, когда текст и шоткод поля находятся в одной и той же строке.

Опция «Использовать HTML-формат письма». Позволяет использовать в теле письма HTML теги. При этом можно использовать ограниченный список HTML тегов, потому что не все почтовые клиенты или сервисы умеют правильно обрабатывать сложную HTML разметку. Можно использовать: таблицы, маркированные списки, жирность, абзацы и так далее. Подробнее ищите в сети.

Contact Form 7 позволяет отправлять письмо на два адреса, причем настройки для каждого письма разные. Это может пригодиться, когда надо отправить администратору сайта письмо с полной информацией и дубликат менеджеру, где содержится только данные о заказе.

меню

Уведомления при отправке формы

В данной вкладке вы можете отредактировать сообщения, которые выводит форма в той или иной ситуации: при удачной или неудачной отправке письма, или при ошибках.

Теги шаблона письма не работают в этих полях.

Дополнительные настройки

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

Об использовании данного функционала я расскажу в отдельной статье.

3 способа добавления отзывов на свой сайт с помощью HTML и WordPress

При выборе между двумя разными компаниями в отношении определенного продукта или услуги отзыв другого клиента имеет значение, если пользователь выберет одного из ваших конкурентов или станет постоянным клиентом.

Если вы сомневаетесь, что отзывы могут иметь такое значение, вспомните, когда в последний раз вы выбирали ресторан, пылесос какой марки купить или нанять сантехника.Скорее всего, вы искали их в Интернете, и, по крайней мере, часть вашего решения была основана на том, что другие люди говорили о каждом варианте, который вы рассматривали.

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

Это означает, что включение отзывов может существенно повлиять на эффективность вашего сайта.

В этом посте я расскажу о трех различных вариантах внедрения обзоров Google и Yelp на свой сайт, а также о том, как обычно выглядят обзоры.

Реализация отзывов на вашем сайте

Способы добавления отзывов на ваш сайт зависят от того, как он построен. Сайты большинства компаний созданы на базе WordPress или HTML, поэтому я остановлюсь на этих вариантах.

Если у вас WordPress

Если ваш сайт построен на WordPress, вы будете работать с плагинами для реализации ваших обзоров — и в целом процесс довольно прост.Вы сможете добавлять обзоры в Yelp, Google и Facebook.

Некоторые плагины бесплатны для встраивания обзоров, но другие будут стоить вам — впрочем, ничего особенного.

  1. Google отзывы

Сначала поговорим об отзывах в Google. У вас есть два варианта: вы можете вручную добавить свои обзоры, что требует некоторого копирования и вставки кодов встраивания, или вы можете положиться на плагин, который по сути делает всю работу за вас.

Использование плагина упростит размещение обзоров Google на вашем веб-сайте. Существуют как платные, так и бесплатные варианты.Если вы хотите сэкономить, бесплатные варианты будут работать — платные версии просто устраняют один или два шага. Так что, если вы не против немного поработать, бесплатный вариант подойдет.

Бесплатный плагин для добавления обзоров Google называется «Обзоры Google Адресов», он простой и удобный.

При использовании этого подключаемого модуля одновременно отображается до трех отзывов, и вы сможете настроить его несколькими способами. Например, вы сможете выбрать светлую или темную цветовую схему для своих отзывов.

Если вы хотите добавить отзывы вручную, вам не придется беспокоиться о кодировании, потому что каждый код, который вам нужен, предоставлен для вас.

Вы можете найти эти коды, перейдя на свою страницу в Google Мой бизнес и щелкнув стрелку, обозначающую отправку одного из ваших отзывов. После этого у вас будет возможность «встроить сообщение», и появится код. Просто скопируйте этот код и вставьте его в свой контент WordPress, где вы хотите, чтобы ваш отзыв отображался. Это так просто!

  1. Yelp отзывы

Yelp сегодня является одним из самых популярных сайтов с обзорами. Фактически, вы, вероятно, уже использовали его, чтобы решить, у кого лучшие морепродукты в городе. Однако Yelp предназначен не только для ресторанов — это один из самых популярных сайтов с обзорами как профессиональных услуг, так и витрин.

Чтобы добавить обзоры Yelp на свой сайт WordPress, вы можете приобрести плагин «Yelp Widget Pro» за 45 долларов в год. Несмотря на то, что это не бесплатно, вы можете легко интегрировать обзоры Yelp вашей компании на свой сайт.

Плагин, по сути, выдаст шорткод, который вы можете вставить в любое место вашего контента и позволить пользователям видеть ваши отзывы.

Вы даже можете настроить их, добавив к своим шорткодам. Вот список вариантов настройки!

  1. Facebook отзывы

Если вы хотите разместить обзоры Facebook на своем сайте WordPress, у вас есть несколько вариантов на выбор.

«Facebook Reviews Pro», вероятно, ваш лучший выбор, хотя и платный. Вы заплатите столько же, сколько и плагин Yelp — 45 долларов за лицензию на один год.

Чтобы реализовать обзоры Facebook с помощью плагина, вам нужно сначала установить плагин, а затем получить шорткод, как в случае с Yelp Widget Pro.”

Еще один вариант реализации обзоров Facebook — это плагин Feed Them Social. Просто установите и активируйте плагин и выберите параметры форматирования. Этот плагин позволяет вам выбирать такие вещи, как цвет фона ваших звезд, цвет текста и многое другое.

Чтобы обзор был виден, вам просто нужно скопировать шорткод и поместить его в свой контент.

Если у вас есть веб-сайт в формате HTML

Встраивать свой код на HTML-сайт так же просто, как и в WordPress, за исключением плагинов.

  1. Google отзывы

Как и в случае с WordPress, вы можете получить доступ к необходимому коду, войдя в свою учетную запись Google My Business и нажав кнопку «Поделиться» в правом нижнем углу обзора, который вы хотите использовать. Нажмите «вставить код», скопируйте код и вставьте его в свой HTML.

  1. Yelp отзывы

Подобно внедрению обзоров Google, вы сможете добавлять обзоры Yelp на свой HTML-сайт, сначала найдя их на Yelp.com.

Наведите указатель мыши на рецензию, которую хотите использовать, и появится поле с вариантами рецензирования. Нажмите «встроить обзор», скопируйте код и вставьте его в свой HTML!

  1. Facebook отзывы

Чтобы получить код для встраивания отзыва на Facebook, просто щелкните дату и время обзора. Это откроет вам полную страницу вашего обзора и упростит поиск кода для встраивания. Щелкните стрелку в правом углу, откроется раскрывающееся меню. Оттуда выберите «Дополнительные параметры», «Вставить сообщение» и скопируйте код для вставки.

Затем вы можете вставить код в любое место вашего HTML-кода, где вы хотите разместить свой отзыв!

Создание и добавление рецензий вручную

Если вы предпочитаете не добавлять на свой веб-сайт обзоры Google, Yelp! Или Facebook, а хотите больше сосредоточиться на отзывах, которые вы лично собрали для своего бизнеса, этот вариант также стоит изучить.

Например, если вы ежеквартально рассылаете опросы своим клиентам и хотели бы разместить их личные отзывы на своем веб-сайте, вы можете использовать их, чтобы показать потенциальным клиентам, как ваша существующая клиентская база извлекла выгоду из ваших услуг.

Для этого варианта вам нужно будет связаться с вашим веб-дизайнером, поскольку обзоры будут встроены в дизайн вашего веб-сайта.

Однако вы можете решить, как вы хотите, чтобы они выглядели и что вы хотите включить.

Вместо звездных оценок вы можете использовать формат отзыва и включать дополнительный контент, такой как изображение или видео каждого клиента, а также их письменный отзыв о вашей компании или услугах. Видео и изображения работают хорошо, потому что они привносят в обзор человеческий аспект, а не просто текст.

Неужели отзывы так важны?

Отзывы — это способ сообщить потенциальным клиентам, что ваши текущие клиенты довольны. Они воспринимаются как вотум доверия вашей компании, и они определенно могут быть решающим фактором, если потребитель находится между двумя компаниями.

Предоставление им обзоров на вашем веб-сайте позволяет им увидеть, что у вас хороший послужной список со своими клиентами, и что они, вероятно, тоже будут удовлетворены вашими услугами.

Имейте в виду, что даже если у вас есть несколько менее чем удовлетворительных отзывов, их тоже можно добавить! Если у вашей компании есть все идеальные отзывы, есть большая вероятность, что потенциальные клиенты сочтут эти отзывы фальшивыми и, возможно, вообще не будут доверять вашей компании.Хорошее сочетание отзывов позволяет потенциальным клиентам выглядеть правдоподобно и честно.

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

Если вы не знаете, как добавлять отзывы на свой сайт, вы можете задаться вопросом, насколько они на самом деле важны. Просто проверьте некоторые из этих статистических данных, и вы, вероятно, будете готовы установить некоторые плагины или обновить свой HTML как можно скорее:

1. 92% потребителей читают онлайн-отзывы

2. 94% потребителей использовали бы бизнес с 4-звездочным рейтингом

3. Отзывы о 50 или более по каждому продукту могут означать повышение коэффициента конверсии на 4,6%.

4. 40% потребителей формируют мнение, читая от одного до трех отзывов »

5. 68% потребителей доверяют отзывам больше, когда видят как хорошие, так и плохие оценки

Вся статистика хранится.googleapis.com

Готовы реализовать обзоры?

Если вам нужна помощь в проведении проверок, WebFX поможет вам. Не стесняйтесь обращаться к нам онлайн или позвонить нам по телефону 888-601-5359 , чтобы поговорить со специалистом!

Создание HTML-формы обратной связи с пользователем

Введение:

HTML-форма на веб-странице позволяет пользователю вводить данные в приложение. Введенные пользователем данные затем отправляются на сервер для дальнейшей обработки или сохранения в базе данных.Образец HTML-формы приведен ниже:

Листинг 1 : Образец HTML-формы


 
   Образец HTML 
  
  
  
  
 

 
  
Имя пользователя:
Пароль:
Мужской
Женский
У меня есть велосипед
У меня есть машина

Приведенный выше код создает базовую HTML-форму со следующими полями:

  • Текстовое поле для ввода имени пользователя.
  • Поле пароля для ввода пароля.
  • Радиокнопка для указания пола: мужской или женский.
  • Установите флажок, чтобы указать тип автомобиля, которым владеет пользователь.

Атрибуты в форме HTML:

Форма

HTML имеет следующие наиболее часто используемые атрибуты:

  • Метод: может иметь одно из двух значений: «получить» или «отправить». ‘post’ используется, когда нам нужно отправить некоторую информацию, которую необходимо сохранить в постоянном хранилище данных.’get’ используется, когда нам нужно получить некоторую информацию на основе отправленного входного значения.
  • Имя: используется для присвоения имени отдельной форме и требуется, когда нам нужно получить доступ к отдельным компонентам формы.
  • Действие: Этот атрибут содержит имя файла, который работает с полями, введенными пользователем. Он также содержит функции, определения скрытых полей, которые необходимы для выполнения задачи.

Сбор и отправка данных формы:

Давайте рассмотрим следующий фрагмент кода.

Листинг 2 : Пример фрагмента кода HTML-формы


 
   Пример 2 
  
  
  
  
 

 
  
ИМЯ:
Электронная почта:
Веб-сайт:
Комментарий:

Приведенный выше фрагмент кода html представляет собой простую форму информации о пользователе, которую пользователь должен заполнить и нажать кнопку отправки. Как только пользователь нажимает кнопку отправки, форма собирает все данные и отправляет их другому сценарию для дальнейшей обработки. В зависимости от бизнес-требований форма может либо отправлять данные на какую-либо другую страницу для дальнейшей обработки, либо обрабатывать данные и выводить данные для пользователя. Когда данные передаются в скрипт для обработки, мы используем либо метод get, либо метод post.

Теги HTML-формы:

Форма

HTML обычно имеет следующие теги:

форма : используется для определения HTML-формы для пользовательского ввода.В следующем фрагменте показано, как его использовать:

Листинг 3 : Использование HTML-формы

Имя:
Фамилия:

Этот тег поддерживается почти всеми браузерами.

вход : используется для определения элемента управления вводом. Пример кода, приведенный в листинге 3, может быть хорошим примером. Этот тег поддерживается почти во всех браузерах.

textarea : используется для определения многострочного ввода текста. В следующем фрагменте показано, как его использовать:

Листинг 4 : Использование html-формы textarea

Этот тег поддерживается почти всеми браузерами.

метка : используется для определения метки для элемента ввода. В следующем фрагменте показано, как его использовать:

Листинг 5 : Использование HTML-формы — метка



Этот тег поддерживается почти всеми браузерами.

fieldset : используется для группировки схожей информации. В следующем фрагменте показано, как его использовать:

Листинг 6 : Использование html-формы — набор полей

<форма>
  
Личная информация Имя:
Электронная почта:
Дата рождения:

Этот тег поддерживается почти всеми браузерами.

легенда : используется для определения заголовка элемента набора файлов. Фрагмент кода, приведенный в листинге 6, является примером того, как его использовать. Этот тег поддерживается почти во всех браузерах.

выберите : используется для создания раскрывающегося списка. В следующем фрагменте показано, как его использовать:

Листинг 7 : Использование html-формы — выберите

<выбор>
  
  
  
  

       

Этот тег поддерживается почти всеми браузерами.

optgroup : используется для определения группы связанных параметров в раскрывающемся списке. В следующем фрагменте показано, как его использовать:

Листинг 8 : Использование html-формы optgroup

<выбор>
  
    
    
  
  
    
    
  
  
    
    
    
  

 

Этот тег поддерживается почти всеми браузерами.

опция : используется для определения опции в раскрывающемся списке. Фрагменты кода, приведенные в листинге 7 и листинге 8, являются хорошим примером того, как его использовать. Этот тег поддерживается почти во всех браузерах.

кнопка : используется для определения кнопки, на которую можно нажимать. Кнопка отправки в листинге 1 или листинге 2 является хорошим примером ее использования. Этот тег поддерживается почти во всех браузерах.

datalist : используется для указания списка предопределенных параметров для элементов управления вводом.Это новый тег, представленный в html 5. Следующий фрагмент показывает, как мы можем его использовать:

Листинг 9 : Использование html-формы — datalist




  
 

Этот тег поддерживается в Internet Explorer 10, Firefox, Opera и Chrome.Это не поддерживается в Internet Explorer 9 и более ранних версиях, а также в браузерах Safari.

keygen : используется для определения пары «ключ-значение». Это новый тег, представленный в html 5. Следующий фрагмент показывает, как мы можем его использовать:

Листинг 10 : Использование кейгена html-формы

Имя пользователя: Шифрование:

Этот тег поддерживается в браузерах Firefox, Opera, Chrome и Safari.

вывод : используется для определения вывода вычисления. Это новый тег, представленный в html 5. Следующий фрагмент показывает, как мы можем его использовать:

Листинг 11 : Использование кейгена html-формы

0 100 + =

Этот тег поддерживается в браузерах Firefox, Opera, Chrome и Safari.

Скриншоты

Вот несколько примеров форм:

Рисунок 1 : Пример формы 1

Рисунок 2 : Пример формы 2

Вывод:

Подведем итог нашему обсуждению в следующих пунктах:
  • HTML-форма используется для ввода данных в приложение.
  • HTML-форма
  • имеет следующие атрибуты:
  • HTML-форма
  • имеет следующие теги:
    • форма.
    • ввод.
    • текстовое поле.
    • Этикетка
    • .
    • набор полей.
    • легенда.
    • выберите.
    • optgroup.
    • Вариант
    • .
    • Кнопка
    • .
    • даталист.
    • кейген.
    • вывод.

9 лучших способов собрать отзывы клиентов на вашем веб-сайте

Довольны ли ваши клиенты?

Если вы не знаете наверняка, угадывать — не лучший вариант.Согласно исследованию, проведенному в 2017 году сотрудниками American Express, человек из США расскажет в среднем 15 людям о плохом опыте обслуживания клиентов.

Что еще хуже, исследование, проведенное генеральным директором thinkJar Эстебаном Кольски, показало, что только 1 из 26 недовольных клиентов жалуется. Остальные просто уйдут.

Это огромный удар, но его можно предотвратить.

Как? Упростив для клиентов возможность обратной связи и убедившись, что они знают, что вы активно поощряете это.Хорошее место, где можно запросить отзывы клиентов, — это ваш веб-сайт.

Если вы можете сделать клиентов счастливыми, решив их проблемы, у вас больше шансов получить хороших рекомендаций, а не плохих. Согласно исследованию American Express, о котором мы говорили ранее, каждый довольный покупатель рассказывает еще 11, по крайней мере, покупатели из США, так что результаты ваших усилий умножатся.

Помимо увеличения дохода получение отзывов от клиентов дает и другие преимущества:

  • Информативная обратная связь может помочь направить разработку продуктов и услуг , чтобы вы сосредоточили свои ресурсы на том, что ваши клиенты действительно хотят от вас как поставщика.
  • Получение отзывов клиентов помогает выявлять и устранять проблемы . Люди, которые жалуются на ваши продукты и услуги, не раздражают; они на самом деле помогают вам работать лучше.

Готовы начать?

В этом руководстве мы рассмотрим лучших способов сбора отзывов клиентов о вашем веб-сайте .

1. Всплывающее окно опроса клиентов

Самый простой способ получить обратную связь — разместить на своем сайте простой опрос.

А встроив свой опрос во всплывающее окно, вы можете привлечь внимание посетителей вашего сайта.

Вот лучший способ настроить это:

На сайте WordPress вы можете быстро создать контактную форму с помощью WPForms, конструктора форм перетаскивания. Таким образом, вам не придется создавать или редактировать какой-либо код самостоятельно.

Вот полное руководство о том, как создать форму обратной связи с помощью WPForms. Или вы можете использовать собственную форму HTML. Вот как подключить OptinMonster к любой пользовательской HTML-форме.

При разработке опроса мы рекомендуем сделать его кратким (только 1-3 вопроса), чтобы побудить больше людей заполнить его. Используйте открытые вопросы (вместо вопросов «да / нет»), чтобы получить более подробные ответы. Ознакомьтесь с остальными лучшими практиками нашего опроса, чтобы получить максимальную отдачу от своего онлайн-опроса.

Когда вы закончите создание опроса, просто нажмите кнопку Встроить и скопируйте появившийся шорткод.

Далее вам нужно будет следовать этим инструкциям, чтобы легко подключить OptinMonster к WPForms.Вы можете вставить свою форму в любой из наших готовых шаблонов.

Для этого просто щелкните Добавить блоки и перетащите блок HTML туда, где вы хотите, чтобы форма отображалась. Затем добавьте шорткод.

Используя OptinMonster, вы можете специально настроить таргетинг своего опроса, чтобы получить как можно больше качественных ответов.

Мы рекомендуем отображать его вернувшимся посетителям и запускать показ вашей кампании после просмотра двух или более страниц.

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

Pro Tip: Если вы хотите, чтобы ваши страницы не перезагружались полностью, когда пользователи отправляют формы на вашем сайте, вы можете сделать это, создав форму WordPress с помощью AJAX.

2. Разместите кнопку обратной связи на своем веб-сайте

Использование кнопки обратной связи дает вам еще один простой способ запросить отзыв на вашем сайте.

Двухэтапный процесс нажатия на кнопку использует эффект Зейгарник, психологический принцип, согласно которому те, кто инициирует действие, с большей вероятностью его завершат.

После создания кампании опроса, как показано в пункте 1 выше, вы можете создать MonsterLink, перейдя к Правилам отображения и добавив условие Если посетитель щелкнул MonsterLink .

Нажмите кнопку, чтобы скопировать код MonsterLink, затем добавьте его на свой сайт в виде кнопки.

Вот как вы создаете кнопку в WordPress. Используйте «Отзыв», «Поговорите с нами» или что-то подобное для текста кнопки. Когда посетители нажимают кнопку, они видят ваш опрос.

3. Предложите поощрение

Иногда вам нужно убедить клиентов оставить отзыв. Некоторые компании делают это, предлагая лид-магнит в обмен на заполнение опроса.

Например, это всплывающее окно обещает бесплатный подарок в обмен на ответ на пару вопросов:

Ваш стимул может быть:

  • купон
  • бесплатная электронная книга
  • контрольный список или шаблон
  • бесплатный путеводитель

Посмотрите этот список идей лид-магнита, чтобы получить больше вдохновения.

С OptinMonster очень просто доставить лид-магнит.

После того, как вы создали свою кампанию, перейдите в представление Success и добавьте элемент кнопки с действием Button Click Action , настроенным на перенаправление на URL-адрес. Затем добавьте URL-адрес для загрузки лид-магнита в поле Redirect URL .

Завершите настройку кампании, сохраните и опубликуйте.

Это позволяет доставить лид-магнит, как только посетители оставляют свои отзывы.Также неплохо отправить свой лид-магнит по электронной почте. Это начинает строить отношения и заставляет ваших клиентов с нетерпением ждать ваших писем.

4. Используйте чат

Если вы хотите знать, что на самом деле думают ваши клиенты, используйте чат, чтобы поговорить с ними, когда они находятся на вашем сайте.

Онлайн-чат быстро становится важным инструментом обслуживания клиентов, потому что:

  • Это удобно для клиентов и доступно для вас.
  • Это помогает увеличить продажи — согласно одному опросу, 38% клиентов сделали покупку, потому что они могли поговорить с кем-то.
  • Это позволяет вам выяснить, какие проблемы важны для клиентов, до продажи, чтобы вы могли решить их в своем маркетинге.

Хорошие места для живого чата включают страницу с ценами и страницу оформления заказа, чтобы вы могли ответить на вопросы и уменьшить количество отказов от корзины. Если вы хотите реализовать чат на сайте WordPress, ознакомьтесь с этим списком программного обеспечения для живого чата.

Не готовы к живому чату? Чат-боты — отличная альтернатива! Узнайте, как легко подключить OptinMonster к ManyChat, чтобы создать своего собственного чат-бота или узнать больше о диалоговой коммерции.

Материалы по теме: Рекомендации по живому чату: как оптимизировать обслуживание клиентов

5. Спрашивайте отзывы в нужном месте и в нужное время

«Если вы хотите собирать полезные отзывы клиентов, важно задавать правильный вопрос нужным людям в нужное время», — говорит Запир. Это увеличит ваши шансы получить ответ.

Получая отзывы клиентов, вы, вероятно, захотите задать разные вопросы на страницах с ценами и страницах оформления заказа.Вопросы на странице с ценами будут сосредоточены на информации, которая поможет посетителям совершить покупку, в то время как вопросы о оформлении заказа могут сосредоточиться на оформлении заказа и покупке.

Вы можете использовать функцию таргетинга OptinMonster на уровне страницы, чтобы отображать разные формы обратной связи на разных страницах. Чтобы включить это, перейдите к Правилам отображения »текущий путь URL-адреса», точно совпадающему с , и введите путь URL.

Вы можете использовать правило для включения или исключения страниц, что позволяет отображать определенный опрос только на определенной странице или вообще не показывать его на определенной странице.

6. Узнайте, почему посетители покидают ваш сайт

Фирменная технология выхода компании

OptinMonster отлично подходит для сбора отзывов клиентов. Он определяет, когда люди собираются покинуть ваш сайт, и запускает кампанию.

Вот как мы собираем отзывы о OptinMonster:

Когда посетитель не готов к покупке и нажимает «Сначала у меня есть несколько вопросов!» они могут сразу же ввести свой отзыв:

Чтобы включить намерение выхода для всплывающего окна опроса, перейдите к Правила отображения и добавьте условие для Если обнаружен выход , затем выберите необходимый уровень чувствительности.

Вы можете воссоздать приведенный выше пример, создав кампанию Да / Нет.

7. Попросите клиентов самостоятельно выбрать свои интересы

Один из быстрых, но эффективных способов получить обратную связь — создать кампанию, в которой вы просите людей выбирать свои интересы.

Это другой тип обратной связи, чем вы получите в результате опросов, но он не менее ценен.

Примером может служить эта кампания по недвижимости. Он спрашивает, покупают ли посетители сайта или продают недвижимость.

С этой информацией компания может:

  • Выясните, что нравится большинству клиентов, и соответствующим образом нацелите рекламные акции.
  • Создавайте конкретных покупателей на основе реальных данных.
  • Отправляйте разные электронные письма в соответствии с предпочтениями клиентов, убедившись, что все они получают актуальную информацию.

Пример выше был создан с помощью кнопок Да / Нет в OptinMonster. Приведем еще один пример.

Представьте, что вы ресторан, предлагающий еду на вынос, и хотите узнать, какие клиенты предпочитают этот вариант, чтобы вы могли нацелить свой маркетинг на них.

Следуйте инструкциям по созданию вашей первой кампании.

Когда вы находитесь в конструкторе кампаний OptinMonster, нажмите Да / Нет представление, а затем Активировать представление .

После того, как вы разработали текст вашей кампании так, как вы хотите, вам нужно будет настроить действия кнопок. Начнем с настройки Да, кнопки .

Введите URL-адрес страницы, на которую должны переходить люди. Например, вы можете создать специальную кампанию для тех, кто нажмет «Да», используя общие ссылки MonsterLink.

Выполните тот же процесс, чтобы отредактировать кнопку Нет.

После сегментации клиентов вы сможете отправлять кампании, соответствующие их интересам, и даже собирать больше отзывов клиентов.

8. Monitor Analytics

Когда вы думаете о том, как собирать отзывы, не забывайте о веб-аналитике. Это позволяет легко определить, какие страницы привлекают внимание, а какие отталкивают клиентов.

Если вы пользователь WordPress, вы можете легко найти свои самые популярные сообщения в блоге с помощью MonsterInsights.Вы также можете отслеживать действия посетителей в Google Analytics.

Вы можете найти информацию о своем показателе отказов, войдя в Google Analytics.

Чтобы найти ваш самый популярный контент, перейдите к Поведение »Контент сайта» Все страницы . Прокрутите вниз до таблицы, чтобы увидеть наиболее посещаемые страницы.

Вместо этого вы можете посмотреть аналитику для целевых страниц , если хотите увидеть страницы, которые привлекают наибольшее количество посетителей извне вашего сайта.

Вы также можете изменить диапазон дат в правом верхнем углу и сравнить с предыдущим периодом, чтобы увидеть, что изменилось за последнее время.

9. Запустите пользовательское тестирование

Не всегда нужно использовать форму или опрос, чтобы получить отзывы клиентов. Вместо этого вы можете видеть, как люди взаимодействуют с вашим сайтом. В Usability Hub есть бесплатный 5-секундный инструмент для тестирования, который работает следующим образом:

  1. Загрузите снимок экрана своей страницы. Вы также можете протестировать логотипы и маркетинговые материалы.
  2. Люди смотрят на вашу страницу 5 секунд, затем Usability Hub спрашивает, что они помнят.
  3. ответов записываются, чтобы дать вам представление о первых впечатлениях посетителей.

С помощью Usability Hub можно также проверить навигацию, щелчки и настройки.

Что делать с отзывами, которые вы собираете

Имея так много способов сбора отзывов клиентов, у вас есть множество вариантов, что делать дальше. Вы можете:

  • Используйте отзывы, чтобы помочь в разработке продукта. Если несколько ваших клиентов просят одну и ту же функцию, это будет приоритетом.
  • Обратитесь к людям, которые дадут вам отличную обратную связь, и укрепите отношения, чтобы превратить их в защитников. Как отмечает Forbes, они принесут вам больше бизнеса, активно продвигая ваши продукты и услуги.
  • Используйте положительные отзывы как социальное доказательство на своем веб-сайте. Это побудит других посетителей стать клиентами. Если вы действительно готовы повысить свое социальное доказательство, попробуйте TrustPulse — вы можете увидеть мгновенный рост конверсий с до 15% !

Теперь, когда вы знаете, как лучше всего собирать отзывы клиентов, подумайте об улучшении своего контента, чтобы повысить рентабельность инвестиций в контент-маркетинг . .. и улучшить обратную связь!

Еще не используете OptinMonster? Начните сегодня, чтобы превратить больше посетителей в подписчиков и клиентов.И не забудьте подписаться на нас на YouTube, Facebook и Twitter, чтобы получить более подробные руководства, подобные этому.

Опубликовано Jacinda Santora

Джасинда Сантора — писатель, специализирующийся на электронной коммерции и маркетинге роста. Она гордится своей способностью упрощать сложные вещи. Когда она не пишет, вы можете увидеть, как она мечтает о кемпингах, пьет кофе и слушает подкасты.

25 инструментов для виджета обратной связи с веб-сайтом и способы его настройки

Получение отзывов пользователей — ключ к росту продукта SaaS (или роста любой компании, если на то пошло.)

И такая, казалось бы, мелочь, как размещение кнопки обратной связи с пользователем на вашем веб-сайте или в приложении, может иметь большое значение для вашего продукта.

Размещенный стратегически, легко обнаруживаемый и задающий правильный вопрос, он может помочь вам улучшить дорожную карту продукта и улучшить обслуживание клиентов.

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

Зачем собирать отзывы пользователей?

Отзывы пользователей имеют решающее значение на протяжении всего пути к покупке — с момента, когда посетитель заходит на ваш сайт, до того, как он купит у вас или воспользуется вашим продуктом, и даже после того, как он уйдет.

Самое замечательное в доступных сегодня инструментах — это , вы можете собирать отзывы практически на любом этапе пути к покупке. :

  • протестируйте новый продукт или функцию с вашими пользователями
  • получите обратную связь, чтобы узнать, что действительно нужно вашим клиентам
  • собирать данные о клиентах и ​​использовать их в своей маркетинговой копии
  • узнать, почему люди покидают ваше приложение или веб-сайт, и улучшить удержание
  • получить оценки ваших товаров или услуг
  • оптимизируйте обслуживание клиентов и сократите время ответа
  • оценить удовлетворенность и лояльность клиентов
  • собирают отзывы для вашего сайта.

Виджет обратной связи с пользователем может ссылаться на все, от очень простого опроса на месте, опроса с одним вопросом и оценки в звездах до визуальной обратной связи и сложной платформы анализа обратной связи.

Давайте рассмотрим несколько примеров.

Лучшие виджеты обратной связи с веб-сайтом, которые легко использовать

1. Wootric

Этот инструмент позволяет создавать форм обратной связи с клиентами для вашего веб-сайта, онлайн-приложения и мобильного приложения, а также предлагает возможность опроса ваших клиентов с помощью электронной почты и SMS.Типы опросов включают NPS (Net Promoter Score), CSAT (Customer Satisfaction Score) и CES (Customer Effort Score).

Вы можете настроить внешний вид форм обратной связи в соответствии с дизайном вашего сайта. Инструмент также предлагает анализ в реальном времени.

Пример опроса NPS, созданного в Wootric

2. Feedbackify

Feedbackify предлагает простое средство создания формы обратной связи методом перетаскивания . Это простой инструмент, который вы можете использовать для встраивания виджета отзывов пользователей на свой веб-сайт и для того, чтобы попросить ваших клиентов поставить оценку, а также отправить комментарии и предложения.Инструмент также предоставляет панель инструментов, на которой вы можете просматривать отзывы, которые вы получаете в режиме реального времени.

Конфигуратор вкладки обратной связи в Feedbackify

3. Usersnap

Usersnap — это гораздо более полный, но при этом простой в использовании инструмент обратной связи с клиентами. Помимо сбора количественной обратной связи с выбором рейтингов, таких как NPS, звезды, пальцы вверх / вниз или смайлики, вы также можете собирать визуальную обратную связь с помощью снимков экрана. Пользователи могут делать снимки экрана в вашем приложении и комментировать их с помощью полей для комментариев, стрелок и рисунков.

Кнопка обратной связи с пользователем — , полностью настраиваемая в соответствии с дизайном и брендом вашего веб-сайта. Платформа включает в себя комплексную панель анализа отзывов для проверки элементов отзывов, анализа настроений и показателей индекса CSAT / NPS.

Connect Usersnap с инструментами обслуживания клиентов позволяет отслеживать отзывы и учитывать каждое взаимодействие. Доступно 20+ интеграций. 15-дневная бесплатная пробная подписка здесь.

4. GetSatisfaction

GetSatisfaction — это инструмент обратной связи с клиентами, который предоставляет вашим клиентам более отзывов пользователей в социальных сетях.Вы можете собирать отзывы с помощью виджета по всему сайту и размещать их на социальном форуме, который вы можете встроить где угодно (ваш веб-сайт, приложение или страницу Facebook), где другие могут оценить его, прокомментировать его и задать свои вопросы или предоставить предложения .

Настройка виджета обратной связи в GetSatisfaction

5. FeedbackLite

Простой, базовый, виджет обратной связи веб-сайта, оптимизированный для мобильных устройств. виджет с 8 настраиваемыми инструментами, включая множественный выбор и открытые вопросы, ранжирование и рейтинги, а также формы подписки.Вы можете настроить виджеты и вкладки по своему усмотрению и использовать расширенный таргетинг, например, по устройству, браузеру или IP.

Виджет опроса на сайте FeedbackLite

6. Medallia

Medallia Experience Cloud (ранее Kampyle) позволяет создавать кнопок обратной связи с клиентами, и фирменные формы и опросы для ваших приложений, веб-сайтов, электронной почты и SMS. Интерактивная обратная связь может быть инициирована для проактивного отображения или нацеливания на определенный сегмент ваших посетителей, например.грамм. тем, кто хочет покинуть ваш сайт.

Платформа более сложная, включая аналитику, аналитику и искусственный интеллект, и предназначена для крупных предприятий.

Интерактивный виджет обратной связи с пользователями в Medallia

7. UserEcho

Помимо виджетов отзывов пользователей, UserEcho также предлагает базу знаний и форум , где ваши клиенты могут оставлять отзывы, а другие могут комментировать и голосовать. Платформа также включает службу поддержки и чат, а также комплексную аналитику.

Пример форума UserEcho

8. Appzi

Appzi предлагает простых виджетов для отзывов пользователей с настраиваемыми кнопками и опросами для вашего веб-сайта. Вы можете настроить цвет, выбрать значок или текст, разместить свой логотип или использовать собственную кнопку. Программное обеспечение предназначено для получения отзывов о продуктах, веб-сайтов и простых ответов с одним вопросом, и в будущем мы будем продолжать разработку.

Индивидуальный виджет обратной связи, созданный в Appzi

9. Emojics

Emojics основан на том, что становится все более популярным способом выражения эмоций — смайликами.Служба предоставляет универсальную кнопку реакции , которую можно использовать для получения отзывов пользователей о вашем продукте, веб-сайте или содержимом вашего блога. Вы также можете использовать его в электронных письмах.

Emojics позволяет настраивать виджет обратной связи с пользователем с помощью собственного текста, CTA, и вы можете выбрать из более 300 доступных смайлов. После того, как пользователь нажал на смайлик, он может оставить свой адрес электронной почты или ответить на дополнительные вопросы.

10. Эмолитики

Emolytics похожа, но более сложна.Он позволяет создавать быстрых опросов с обратной связью и улавливать эмоции посетителей. К функциям относятся раскрывающиеся меню, ползунки, формы для генерации лидов и рейтинги, которые вы можете использовать в электронных письмах, на мероприятиях, в точках продаж, в сообщении в блоге, на веб-странице или на веб-сайте, в счете-фактуре, объявлении и т. Д. Он также имеет возможности отчетности и анализа.

Виджет обратной связи с веб-сайтом от Emolytics

11. Виджет рейтинга

Rating Widget — это базовый виджет, который работает с WordPress и другими разработчиками веб-сайтов, такими как Wix и Blogger, а также с платформами электронной коммерции, такими как Shopify.Его можно быстро настроить, с настраиваемыми рейтингами и несколькими темами, отмеченными звездочками и значками. Он отлично подходит для мгновенной обратной связи в блогах, интернет-магазинах и веб-сайтах.

Пример виджета рейтинга

12. Спросите красиво

Ask Nicely — это инструмент для обратной связи с клиентами, специально ориентированный на опросы NPS , которые можно отправить по электронной почте или на вашем веб-сайте и внутри вашего приложения. Вы можете интегрировать свою CRM, чтобы инициировать запросы обратной связи, связанные с конкретными событиями или в определенное время.Он включает полезную аналитику для детализации результатов и анализа оценок.

Опрос NPS, созданный с помощью Ask Nicely

13. Informizely

Informizely позволяет собирать отзывов на данный момент с целевыми опросами веб-сайтов и скользящими и всплывающими опросами , инициированными намерением выхода, прокруткой страницы, временем простоя и нажатием кнопки. Вы можете отображать опросы со ссылками на всю страницу, встраивать опрос Net Promoter Score, рейтинг или другой вопрос с одним вариантом ответа в электронное письмо или встраивать опросы в приложения HTML, такие как сообщения чата.

Пример опроса NPS от Informizely

14. Qualtrics

С помощью Qualtrics вы можете собирать отзывы пользователей на своем веб-сайте и в своем мобильном приложении, встраивать опросы в электронные письма, а — собирать отзывы из социальных сетей .

Qualtrics — одна из наиболее всеобъемлющих платформ управления опытом для крупных компаний, включая исследования рынка и аналитику сотрудников, а также ролевые информационные панели для нескольких пользователей в организации.

Пример опроса NPS, созданного с помощью Qualtrics

15.Лаборатория мнений

Помимо того, что является платформой голоса клиентов и инструментом обратной связи с клиентами, OpinionLab также позволяет собирать отзывы из офлайн-каналов, таких как физические магазины и контакт-центры.

Инструмент позволяет добавлять инициированные клиентом карточки динамического комментария на веб-сайты и в мобильные приложения. Формы обратной связи могут запускаться на основе намерения выхода, поиска или отказа от корзины. Платформа также предоставляет аналитику, которая поможет вам превратить отзывы в действия.

Карточка динамических комментариев

16.Усабилла

Usabilla предлагает кнопки обратной связи с клиентами, которые вы можете настроить в соответствии с вашим веб-сайтом и приложениями, для получения целевой обратной связи внутри приложения. Используя этот инструмент обратной связи с клиентами, вы можете запускать условные опросы, рейтинги и опросы NPS. Ваши клиенты также могут отправить визуальный отзыв с помощью функции скриншота и оценить свой опыт в электронных письмах.

Затем вы можете проанализировать результаты, чтобы улучшить свое приложение или службу.

Пример опроса в приложении и рейтинга, созданного с помощью Usabilla

17.Сабля

Sabre — еще один инструмент визуальной обратной связи , который позволяет вашим посетителям выделять проблемы на вашем веб-сайте с помощью снимков экрана и отправлять их по электронной почте. Он также предоставляет настраиваемые кнопки обратной связи и формы , которые вы можете редактировать, чтобы запускать опросы NPS. или получать оценки от ваших клиентов и добавлять свои собственные настраиваемые поля. Он интегрируется с несколькими приложениями для управления проектами.

Приятным дополнением является то, что вы можете использовать кнопку обратной связи на 13 языках.

Создание кнопки обратной связи с веб-сайтом в Sabre

18. Mopinion

Mopinion — одно из наиболее сложных решений для обратной связи с пользователями. Программное обеспечение позволяет размещать настраиваемых кнопок обратной связи на любой странице вашего веб-сайта, используя один из доступных режимов обратной связи: модальные окна, вставные формы или встроенные на ваш сайт или в ваши электронные письма. Кнопки обратной связи веб-сайта могут запускать опросы NPS, опросы в приложениях и рейтинги.

Пример Mopinion

19.GetFeedback

С помощью GetFeedback вы можете создать фирменных кнопок отзывов пользователей и опросов для вашего веб-сайта. Вы можете настроить логику своих опросов, персонализировать приветствия и добавить свои логотипы, шрифты, цвета и настраиваемые URL-адреса.

Опросы могут быть встроены на ваш веб-сайт или в приложение, отправлены в текстовом сообщении или опубликованы в социальных сетях. Вы можете отправлять электронные письма прямо с платформы или интегрироваться с поставщиком услуг электронной почты, которого вы используете.

Виджет отзывов пользователей на веб-сайте GetFeedback

20. Survicate

Survicate — это платформа для опросов клиентов , которую вы можете использовать для запуска целевых опросов на своем веб-сайте. Опросы можно настраивать, а виджет обратной связи с клиентами для вашего веб-сайта может быть дополнительно разработан с использованием расширенных параметров CSS платформы.

Вы можете проводить целевые опросы веб-сайтов, опросы по электронной почте, опросы в мобильных приложениях, добавлять формы для привлечения потенциальных клиентов и создавать анкеты, которыми можно делиться через электронную почту, приложения для обмена сообщениями и социальные сети. Инструмент интегрируется с несколькими поставщиками услуг электронной почты.

Пример опроса на месте, созданного с помощью Survicate

21. Typeform

Typeform позволяет создавать простые и минималистичные опросы и встраиваемые контактные формы . Он отличается чистым дизайном и простыми в использовании шаблонами. Опросы задают один вопрос за раз, чтобы следить за течением реального разговора, и они работают на любом устройстве. Вы можете проводить отзывы и опросы, создавать формы для привлечения потенциальных клиентов, викторины, опросы на месте и многое другое.

Шаблон опроса Net Promoter Score в Typeform

22. CrowdSignal

CrowdSignal (ранее PollDaddy) — это плагин WordPress от создателей самого WordPress для создания встроенных опросов и опросов на веб-сайтах и ​​в электронных письмах . Вы можете подключить его к другим сервисам, таким как Facebook, Twitter, Weebly и другим. Это отличный инструмент для коротких викторин и опросов на месте, позволяющий задавать посетителям быстрые вопросы и получать отзывы прямо сейчас. Вы также можете создавать опросы с неограниченным количеством вопросов и оценок.

Программное обеспечение также предлагает приложение iOS для сбора ответов где угодно, например на выставке, в торговой точке или для проведения исследования улиц.

Опрос на сайте WordPress, созданный с помощью CrowdSignal

23. Bugrem

Bugrem — это еще один инструмент обратной связи с пользователями, который позволяет создавать кнопки и формы отзывов пользователей и позволяет пользователям оставлять отзывы, предложения и отчеты об ошибках, делает снимки экрана прямо из своего браузера .

Программа предлагает готовые кнопки и формы обратной связи с пользователями, которые можно настроить.Кнопки могут запускать формы для общей обратной связи, или пользователи могут перетаскивать их в определенную часть страницы.

Форма обратной связи пользователя, запускаемая кнопкой на веб-сайте Bugrem

24. Feedbackrig

FeedbackRig — это платформа обратной связи, которая предоставляет настраиваемых прикрепленных виджетов обратной связи с пользователями, , веб-опросы, рейтинги, опросы с одним вопросом и многое другое для веб-сайтов и приложений, а также электронную почту. Он включает в себя широкий спектр вариантов таргетинга, а также позволяет отправлять визуальную обратную связь путем интеграции кнопки визуальной обратной связи с вашим веб-сайтом или приложением.

Программное обеспечение включает отчеты и анализ и интегрируется с другими инструментами, такими как Trello.

Простой виджет рейтинга на сайте FeedbackRig

25. Freddy Feedback

Freddy Feedback можно использовать для получения отзывов обо всем, что вы сообщаете своим клиентам на своем веб-сайте: о продуктах, функциях, ценах, сообщениях в блогах, часто задаваемых вопросах, документации и многом другом. Он предлагает оценок смайликов по 3 и 5 шкалам, звездные рейтинги и оценку «большой палец вверх / вниз» с дополнительным дополнительным вопросом.

Дизайн минималистичный, с несколькими темами на выбор, и он не показывает вашим клиентам ярлык «Powered by», что приятно.

Какой виджет обратной связи с клиентами лучше всего?

Самый подходящий инструмент — тот, который наилучшим образом отвечает потребностям вашей компании. Вы хотите собирать рейтинги веб-сайтов, получать письменные отзывы или визуальные скриншоты и аннотации? Или все вместе?

Но даже самый лучший инструмент ничего не изменит, если вы не будете действовать в соответствии с отзывами, которые собираете. Поэтому убедитесь, что вы знаете, почему вы собираете отзывы, и что они не остаются на платформе, чтобы их никто не видел. Обратная связь должна использоваться в рамках всей организации, в командах по маркетингу, продажам, UX, дизайну и продуктам для достижения одной важнейшей цели: сделать ваших клиентов более довольными вашими продуктами.

Не знаете, какой инструмент обратной связи вам нужен? Поговорите с нашими экспертами — подпишитесь на бесплатную демонстрацию прямо сейчас.

Используйте HTML в своих формах обратной связи и кампаниях GetFeedback Digital — Служба поддержки Usabilla

Когда вы внедрили GetFeedback Digital и настроили свои формы, вы, возможно, заметили, что для элементов формы абзаца есть флажок с надписью «включить HTML». В этой статье мы рассмотрим, как вы можете использовать эту функцию, чтобы обогатить свои формы обратной связи и кампании с помощью HTML.

Для этой статьи мы рекомендуем вам иметь некоторые базовые представления о том, как работают веб-страницы, и что вы знакомы с использованием GetFeedback Digital for Web. Эта статья все еще обновляется, поэтому, если у вас есть отзыв, используйте кнопку обратной связи или виджет в конце страницы.

Включить HTML

Функция включения HTML позволяет добавлять базовый HTML в формы обратной связи и кампании GetFeedback Digital для Интернета.HTML означает язык гипертекстовой разметки (HTML). HTML используется для создания веб-страниц и может быть прочитан вашим веб-браузером. Наличие HTML в GetFeedback Digital for Web позволяет по-настоящему проявить творческий подход к форме обратной связи и кампаниям. Чаще всего используются:

  • Добавление ссылки в форму обратной связи, которая ведет на ваши страницы поддержки клиентов.
  • Добавление iframe на страницу благодарности формы обратной связи, которая интегрирует Facebook на страницу благодарности.
  • Добавление изображений в вашу кампанию и получение отзывов о них.

HTML работает с тегами, которые можно распознать по инкапсулированному «<..>«. Чтобы начать использовать функцию «Включить HTML», просто перейдите в форму обратной связи GetFeedback или в кампанию и добавьте «Элемент абзаца». Когда вы добавили элемент абзаца, щелкните его, чтобы отредактировать. В появившемся модальном окне «Редактировать» вы заметите, что есть текстовая область, в которую вы можете добавить текст, и есть флажок под ней. Установите флажок с надписью «Включить HTML», чтобы начать использовать HTML в формах цифровой обратной связи GetFeedback и в кампаниях.

В следующих разделах мы рассмотрим наиболее распространенные теги HTML, которые вы можете добавить в формы обратной связи и кампании GetFeedback Digital для веб-сайтов, а также способы их использования, представив примеры. Мы позаботились о том, чтобы эти примеры были максимально информативными, чтобы учиться на них и использовать их в качестве отправной точки. Если вы хотите узнать больше о том, как использовать эти HTML-теги, мы настоятельно рекомендуем проверить такие сайты, как W3schools.com

.

Ссылки

Ссылки, также известные как гиперссылки, могут использоваться для перехода на другую веб-страницу.Помимо ссылки на другую веб-страницу, вы можете использовать ссылки также использовать ссылки для других целей, таких как открытие почтовой программы пользователя или набор номера телефона, когда пользователь использует телефон для доступа к вашей веб-странице.
Каждый тег ссылки можно узнать по букве «А», заключенной в шевроны, подобные этому . Между открывающим и закрывающим тегами вы можете добавить текст, который будет отображаться как ссылка. В JSFiddle ниже вы найдете несколько примеров ссылок, которые вы можете использовать.В JSfiddle вы также увидите, что каждый элемент имеет свойства. Эти свойства позволяют вам определять вашу ссылку для стилизации, а также для указания способа открытия ссылки.

Изображения

Изображения могут быть очень полезны, когда вы пытаетесь что-то объяснить или когда вы хотите сделать это немного более наглядным. Изображения могут быть добавлены с помощью тега . Хотя большинство тегов HTML имеют закрывающий и открывающий теги, — это так называемый открытый тег HTML. Это означает, что у вас нет закрывающего тега.

Еще предстоит добавить …

Топ 21 бесплатных шаблонов контактных форм HTML5 и CSS3 2020

В этой обширной коллекции вы найдете некоторые из лучших дизайнов контактных форм на основе HTML и CSS.

Отзывы клиентов, повседневное общение между веб-мастерами, вопросы поддержки, общие отзывы и многие другие виды общения, которые мы находим на веб-сайтах, в первую очередь полагаются на функциональную контактную форму, которая позволяет этому обмену информацией происходить .

Хотя можно просто упомянуть свой адрес электронной почты здесь и там, контактная форма — это гораздо более надежная (и удобная) концепция, позволяющая другим связаться с вами и вашим бизнесом. Помните о возможностях общения через Интернет. Тем не менее, используйте подходящую контактную форму, к которой легко получить доступ и использовать. Мы поможем вам с шаблонами на выбор.

Преимущества контактных форм

Использование контактных форм дает так много преимуществ.

Во-первых, мы устраняем значительную часть писем, связанных со спамом, в наш почтовый ящик вместо того, чтобы отображать простые адреса электронной почты (которые спамеры могут легко расшифровать).Мы используем динамическую форму, которую можно защитить с помощью надежных плагинов и инструментов для проверки капчи.

Затем мы переходим к возможности спрашивать клиентов, что мы хотим узнать о них больше. Например, дизайнерские компании могут спросить клиентов об их бюджете. Или тип области, в которой они работают, чтобы лучше классифицировать каждое электронное письмо и каждого потенциального клиента.

Более того, тут последовательность юзабилити. Контактные формы позволяют легко получать электронные письма и отвечать на них, поскольку в большинстве случаев все они выглядят одинаково.

В то время как платформы для ведения блогов, такие как Drupal и WordPress, предоставляют своим пользователям массу интересных плагинов для контактных форм, тем из нас, кто полагается на создание собственных веб-сайтов, естественно, придется полагаться на шаблоны контактных форм.

В сегодняшнем списке мы изучаем лучшие бесплатные шаблоны контактных форм HTML5 и CSS3. Это добавит вашей индивидуальности вашим контактным страницам ощущение модернизации. Добавить эти шаблоны на свои страницы будет невероятно просто. Так же просто, как создать несколько файлов HTML и CSS, а затем указать их местоположение.

Изучите 2,5 миллиона цифровых активов, включая лучшие темы WordPress 2021 года.

Более 2 миллионов элементов с крупнейшего в мире рынка шаблонов, тем и дизайнерских материалов HTML5. Будь то то, что вам нужно, или вы сразу после нескольких стоковых фотографий — все это можно найти здесь, на Envato Market.

СКАЧАТЬ СЕЙЧАС

Лучшие бесплатные шаблоны контактных форм HTML5

Контактная форма Colorlib

При таком большом количестве фреймворков, доступных в настоящее время разработчикам, иногда бывает сложно найти собственные формы, созданные с нуля, но этот именно это.Нативная контактная форма HTML5 и CSS3, компактная и легко настраиваемая в соответствии с вашими потребностями. Кроме того, для отправки фактических писем требуется только простая динамическая конфигурация. Стиль можно настроить по своему усмотрению.

Скачать

Contact Form 1 от Colorlib


Простота, смешанная с творчеством, может привести вас исключительно далеко. Не нужно слишком усложнять вещи, занимаясь всеми этими причудливыми вещами, когда вы можете использовать Контактную форму 1, чтобы помочь тем, кто в этом нуждается, связаться с вами быстро и удобно. У него есть прекрасная коробка со всем необходимым на синем градиентном фоне. Излишне говорить, что это очень приятно для глаз. Конечно, если он не соответствует вашим потребностям на 100% из коробки, не стесняйтесь настраивать форму, как вы считаете, что она лучше всего подходит, и чтобы она соответствовала вашему бренду. Это простая задача благодаря удобству использования этого бесплатного шаблона контактной формы HTML5.

Загрузить предварительный просмотр

Contact Form 2 от Colorlib


Contact Form 2 — это сложная и простая форма, основанная на HTML5 и CSS3.Если вам нравится стиль, вы можете использовать его практически с любым веб-сайтом, который захотите. Нет никаких ограничений, так как Contact Form 2 практически мгновенно адаптируется ко всем нишам и отраслям. Но прежде чем запустить его, убедитесь, что вы настроили внешний вид инструмента. Также сделайте его согласованным с вашим основным бизнесом или веб-сайтом онлайн-проекта. Холст организован и аккуратен, что позволяет легко настроить его даже для начинающих.

Загрузить предварительную версию

Контактная форма 3 от Colorlib


Это бесплатный шаблон контактной формы HTML5 со всем необходимым для быстрого и эффективного создания страницы контактов.Это та часть, которую вы на 100% не должны упускать на своей странице. Если так получилось, что страница с контактами — последний кусок головоломки, приступайте к делу. Загрузите предпочтительный стиль и получите его в кратчайшие сроки. Ведь большая часть работы уже сделана за вас. Вам нужно только применить это на практике, и вы готовы сиять. С контактной формой 3 вы можете сразу приступить к ее созданию. Он легко адаптируется к любому веб-сайту, а также позволяет изменять его по своему усмотрению.

Загрузить предварительный просмотр

Контактная форма 4 от Colorlib


Перед вами простой, но современный бесплатный шаблон контактной формы HTML5. Он обеспечивает надежный макет для создания необходимой страницы контактов. Если вам не хватает одного, вам лучше создать страницу для подключения к контакту как можно скорее. Я имею в виду, как вы вообще думаете, что они будут задавать вам вопросы и даже деловые предложения? Они ни в коем случае не копируют ваш адрес электронной почты на своих почтовых провайдеров. Самый лучший и очевидный подход — создать и активировать полностью функциональную страницу контактов, готовую к использованию ею по своему желанию.

Загрузить превью

Contact Form 5 от Colorlib


Contact Form 5 — это кристально чистый бесплатный шаблон контактной формы HTML5 с минимальным подходом. Вы можете использовать его с агентствами и даже с личными веб-сайтами. Благодаря своему минималистичному подходу, Contact Form 5 не имеет проблем с адаптацией к вашему присутствию в Интернете и поможет вам расширить ваше предложение, давая вашим пользователям возможность связаться с вами. Использование шаблона сэкономит вам много времени и сделает ваш текущий вид в Интернете еще более ценным.Более высокая ценность также означает лучшую общую производительность и больше довольных клиентов.

Загрузить предварительную версию

Контактная форма 6 от Colorlib


Независимо от того, есть ли у вас физическое место, где люди могут вас навещать, или просто потому, что контактная форма 6 — это фантастический веб-дизайн со встроенными Google Maps. Тем не менее, покажите, где вы находитесь, и побудите их связаться с вами, используя пульсирующий значок почты. При нажатии на нее открывается практичное всплывающее окно с контактной формой, которое они могут использовать для отправки вам сообщения.Контактная форма 6 также имеет специальное место в нижней части всплывающего окна, которое вы можете использовать для обмена другими своими контактными данными с посетителями вашего сайта и потенциальными клиентами. И если вы ответите им достаточно быстро и точно ответите, шансы на победу высоки.

Загрузить предварительную версию

Contact Form 7 от Colorlib


Для чистого минимализма Contact Form 7 — это бесплатный шаблон контактной формы HTML, который подойдет вам исключительно хорошо. Макет идет прямо к делу, без каких-либо отвлекающих факторов и спецэффектов.Они попадают на страницу, используют активную форму и все. Разве не этим должна быть страница контактов? Как владелец веб-сайта вы можете изменить контактную форму 7, чтобы она идеально соответствовала их странице. Это может быть только изменение цвета фона и кнопки, и вы готовы интегрировать дополнительную страницу в свое текущее веб-пространство.

Загрузить предварительную версию

Контактная форма 8 от Colorlib


Если вы хотите использовать Карты Google в качестве фона на странице контактов, то наш шаблон Контактной формы 8 — одна из лучших альтернатив.Это аккуратный, чистый и организованный веб-дизайн, основанный на HTML5 и CCS3, полностью адаптивный и готовый к работе с сетчаткой. Контактная форма 8 также будет работать со всеми основными веб-браузерами и обеспечивать бесперебойную и удобную работу для каждого из ваших посетителей. Улучшите его своей подписью и сделайте Contact Form 8 своей собственной версией, которая легко впишется в ваше текущее присутствие в Интернете.

Загрузить предварительную версию

Контактная форма 9 от Colorlib


Для чего-то немного другого и даже более современного, вот контактная форма 9.Если вы разборчивый пользователь, который еще не нашел лучший бесплатный шаблон контактной формы HTML5, это может быть тот, который вам нужен. Контактная форма 9 поставляется с фоном Google Maps и наложением градиента, что придает ей особый штрих, которым все будут впечатлены. Независимо от того, осуществляется ли доступ к нему с портативного устройства или с настольного компьютера, он создает одинаковые впечатления для всех пользователей. Более того, независимо от CMS или отдельной страницы, Contact Form 9 готова стать частью вашего веб-творения с некоторой (читаемой немного) дополнительной работой.

Загрузить предварительный просмотр

Контактная форма 10 от Colorlib


Подобно другому супер упрощенному бесплатному шаблону контактной формы HTML5, который вы видели ранее, вот контактная форма 10. Что отличает от этого, так это кнопка сплошного цвета и округленные пространства формы, которые заставляют его появляться идеально подходит для современного мобильного пользователя. Потому что почти каждое приложение на вашем смартфоне, кажется, имеет округлую отделку, которая в какой-то степени выглядит довольно забавно. Контактная форма 10, безусловно, следует тенденции и предоставляет фантастическое решение, позволяющее всем вашим пользователям обратиться к вам с любыми вопросами, которые могут у них возникнуть, прежде чем заключить эту крупную сделку.

Загрузить предварительный просмотр

Contact Form 11 от Colorlib


Contact Form 11 — это оригинальный, яркий и яркий бесплатный шаблон контактной формы HTML5, который вы можете использовать в своих интересах. Скачайте его немедленно и сразу же используйте без колебаний. Конечно, в первую очередь, все сводится к тому, подходит ли вам этот стиль, или вы все равно хотите чего-то немного другого. Не нужно задаваться вопросом, где найти нужный шаблон, поскольку для вашего удобства здесь собрано все самое лучшее и высокоэффективное.Не говоря уже о том, что вы все равно можете улучшить внешний вид каждой страницы своим творчеством и настроить внешний вид по своему желанию.

Скачать превью

Contact Form 12 от Colorlib


Фон изображения с наложением и гармоничной и активной контактной страницей понравится всем пользователям Contact Form 12. Это бесплатный шаблон контактной формы HTML5, который вы можете добавить на свою страницу и получить полностью рабочее веб-пространство, готовое к запуску раньше, чем позже. Вы можете изменить изображение, цвета и другие мелкие детали, которые составят контактную страницу, которая будет следовать вашему бренду до T.В самом деле, крайне важно, чтобы каждый раздел вашего веб-пространства соответствовал одним и тем же правилам и положениям, иначе вы можете потерять доверие клиентов из-за плохого присутствия в Интернете. С Контактной формой 12 это никогда не проблема.

Загрузить предварительную версию

Контактная форма 13 от Colorlib


Чтобы избежать создания классической контактной страницы, контактная форма 13 — лучший выбор, чтобы выделиться с помощью слегка измененного внешнего вида. Макет этого бесплатного шаблона контактной страницы HTML5 разделен на две части.Лучшая часть макета посвящена Google Maps, вашему точному местоположению, а также номеру телефона, а другая часть представляет собой практическую контактную форму. Для агентств и предприятий, которые хотели бы продемонстрировать свое физическое местонахождение оригинальным способом, Contact Form 13 — отличный способ создания столь необходимой страницы для доступа к контактам. Кстати, пользоваться макетом и работать с ним очень удобно и просто.

Загрузить предварительную версию

Контактная форма 14 от Colorlib


Если нестандартная страница контактов, которую вы получили с шаблоном веб-сайта, вам не нравится, то вы попали в нужное место.Здесь вы найдете широкий спектр различных веб-дизайнов, которые помогут вам создать идеальную страницу с помощью контактной формы. Если вам все еще нужно добавить его на свою страницу, сейчас самое подходящее время для этого. Независимо от того, нравится ли вам упрощенная атмосфера, смешанная с яркими цветами, Contact Form 14 — это шаблон, который вам следует изучить дальше. Он поставляется со всеми разделами, которые требуются полнофункциональной странице контактов, чтобы обеспечить пользователям удобство работы, даже если они решат связаться с вами.

Загрузить предварительную версию

Contact Form 15 от Colorlib


Contact Form 15 — это немного более продвинутый бесплатный инструмент для создания контактных страниц практически для любой ниши и отрасли, в которой вы работаете. Он поставляется с фоном Google Maps, который вы можете использовать для отображения вашего местонахождение компании. Тем более, что раздел контактной формы далек от привычной скучной. Помимо необходимых полей формы, над областью контактов есть специальный раздел, посвященный изображению и дополнительному тексту.Используйте его, чтобы побудить их связаться с вами. Пусть они наконец получат ответы на все вопросы и проблемы, которые могут у них возникнуть.

Загрузить предварительную версию

Контактная форма 16 от Colorlib


Сэкономьте время и силы, когда дело доходит до улучшения вашего присутствия в Интернете. Используйте заранее подготовленные материалы, которые мы приготовили для вас. Когда дело доходит до создания идеальной контактной страницы для добавления на ваш веб-сайт, мы предлагаем вам множество идей и решений. Нет необходимости искать в другом месте, когда у вас под рукой есть все необходимое, просто скачав его.Контактная форма 16 — еще один убийственно бесплатный шаблон контактной страницы HTML5 с фоном изображения. Он также имеет оттенок наложения и всплывающую форму обратной связи. Последний можно закрывать или открывать повторно.

Предварительный просмотр

Контактная форма 17 от Colorlib


Вы могли вспомнить похожий стиль, который использовался в другом шаблоне контактной страницы, только он заключен в рамку, а не в полноэкранном режиме. При этом макет Contact Form 17 sports разделен пополам. Одна сторона веб-дизайна зарезервирована для изображения и дополнительных контактных данных.Более того, другая часть представляет собой чистую и аккуратную контактную форму со всеми обязательными полями. Вы можете быстро добавить этот макет на веб-сайт, который вы создаете в настоящее время, или даже на свое существующее присутствие в Интернете. Позвольте себе изменить контактную форму 17 так, как вы считаете, что она лучше всего подходит для вашего бизнеса. При этом предложите потенциальным клиентам поговорить с вами без необходимости поднимать трубку.

Загрузить предварительный просмотр

Contact Form 18 от Colorlib


Подобный подход к веб-дизайну, который используется в Contact Form 13, Contact Form 18 заменяет фон Google Maps изображением.Основная часть веб-дизайна — это изображение. Используйте его, чтобы еще больше заинтересовать ваших гостей и привлечь их внимание. Выбирай с умом! В правой части экрана Контактная форма 18 имеет полную контактную форму с закругленными полями и кнопками социальных сетей. Убедитесь, что вы связали и их, и покажите миру, насколько вы общительны. И последнее, но не менее важное: Contact Form 18, как и все остальные, адаптивна, поддерживает мобильные устройства и сетчатку.

Загрузить предварительную версию

Contact Form 19 от Colorlib


Contact Form 19 — это максимально упрощенный бесплатный шаблон контактной страницы HTML5, насколько это возможно.Однако вместо сплошного цветного фона или даже изображения в Contact Form 19 реализованы Google Maps. Он также имеет накладку, которая создает потрясающий эффект тени. Вы можете использовать Карты Google исключительно из-за особого прикосновения к странице или для отображения местоположения вашей фирмы. В любом случае, именно Контактная форма 19 делает это за вас. Избавьтесь от необходимости создавать контактную страницу с нуля и используйте вместо нее готовый шаблон. Это требует небольшой работы для достижения фантастических результатов.

Скачать предварительный просмотр

Contact Form 20 от Colorlib


Дизайн, отчасти похожий на Contact Form 8, с еще более простым и минимальным разделом контактной формы. Вы получаете бесплатный шаблон страницы контактов HTML5 с фоном Google Maps и упакованную с тремя полями форму для отправки сообщения. Вы можете изменить текст и цвет кнопки отправки по своему усмотрению. Кроме того, расскажите о поведении вашей компании, чтобы ваша недавно разработанная страница контактов не выглядела так, как будто это стороннее программное обеспечение.Благодаря удобству использования и простоте редактирования и улучшения кода новички и профессионалы могут извлечь большую выгоду из превосходной контактной формы 20. Загрузите шаблон сейчас, и вскоре после этого он будет запущен.

Загрузить предварительную версию

Добавить виджет отзывов клиентов на ЛЮБОЙ веб-сайт или в Facebook | Лучший виджет рейтинга поисковой выдачи | Автоматически отображает отзывы / рейтинги ваших клиентов | SERP и Facebook | Соберите отзывы | Увеличить продажи на сайте | Плагин WordPress

Шаг 2 — Добавление кода на вашу страницу

Эта первая часть находится там, где вы хотите, чтобы отзывы клиентов отображались на вашем веб-сайте.Идеальное место — это боковая колонка рядом с предложениями продуктов или услуг.



Или, если вы хотите использовать собственный CSS для своего виджета




Вторая часть кода (ниже) помещается внизу той же страницы непосредственно перед закрывающим тегом .Почему? Потому что это предотвращает любую задержку виджета, влияющую на загрузку контента. Отзывы будут отображаться как загрузка ajax после загрузки остальной части веб-страницы.

Шаг 2b — Выберите предпочтительный стиль виджета

Существует два разных типа виджетов с отзывами и оценками (из 5 звезд). Выберите свои предпочтения ниже (копируйте только один стиль, а не оба).

Для стандартных отзывов используйте этот код:


Для версии обзора используйте этот код:


Для версии Slider / Scroll используйте этот код:


Единственное отличие кода версии обзора — это использование t = r (для звездных оценок) вместо t = t (стандартная характеристика) , установка в коде для изменения режима виджета.

Параметры ниже позволяют настроить внешний вид виджета на странице, чтобы он выглядел в соответствии с вашей собственной цветовой схемой.В более поздних версиях виджета запланировано больше функций.

Параметры виджета
Каждой опции настройки должен предшествовать символ &, как в приведенном выше фрагменте.

Настройки
добавить = [верно | false] (добавляет ссылку [Добавить отзыв] или [Добавить отзыв] внизу виджета)
с = [xxxxxx] (настройка цвета текста без)
б = [xxxxxx] (настройка цвета фона)
(Новое: b = trans будет работать как прозрачный фон и будет сливаться с вашей страницей!)
d = [верно | false] (возможность отображения даты отправки)
f = [формат даты]
1 = д. m.y (например, 30.10.14)
2 = m.d.y (например, 10.30.14)
3 = месяц, день, год (например, 30 октября 2014 г.)
Мы сделаем вариант 3 значением по умолчанию
ст = [x] (необязательная настройка стиля: 0 = цитата, 1 = значок галочки, 3 = нет, другие будут добавлены в ближайшее время)
т = [т | r] (необязательно t = режим отзывов и r = режим обзоров со звездочкой)
id = [xxxxxxxx] (ваш 8-значный код участника, указанный при регистрации, не путать с вашим сетевым паролем)
ш = [x] ширина виджета в пикселях
ш = [xxxpx] e.грамм. sh = 160px (используйте для увеличения / уменьшения высоты скроллера / слайдера)
г = 1 (закругленные углы для виджета)
форма = [true] для виджета с прокруткой: скрытая форма, которая отображается при наведении курсора (щелкните еще раз, чтобы скрыть)

xxxxxx — шестизначное шестнадцатеричное значение цвета. (обратите внимание, пожалуйста, не включайте символ # для шестнадцатеричного цветового кода)
НОВИНКА: b = trans будет работать как прозрачный фон и будет сливаться с вашей страницей! Лучше всего работает на светлом фоне
НОВИНКА: form = true добавит встроенную форму с отправкой ajax обзора для версии скроллера / слайдера

Шаг 3. Сбор отзывов

Всякий раз, когда вы продаете продукт или услугу, вы должны спросить, можно ли получить отзыв от покупателя.Это можно сделать двумя способами (см. Ниже).

[Вариант 1] Электронная почта . Вы можете отправить ссылку клиентам по электронной почте, и когда они нажмут на нее, они попадут в онлайн-форму для сбора отзыва.
например https://www.testimonialrobot.com/add.php?id={your code}
Вы также можете отправлять запросы до 10 электронных писем одновременно из онлайн-системы ( онлайн-панель ).

[Вариант 2] Добавить кнопку — Вы также можете попросить клиентов посетить ваш веб-сайт и нажать кнопку «Добавить отзыв» в нижней части содержимого вашего виджета.

После добавления вам будет отправлено уведомление по электронной почте с вопросом, хотите ли вы одобрить или удалить характеристику.

Шаг 4. Утверждение / отклонение отзывов клиентов

После каждого отзыва вы будете получать уведомление по электронной почте с кратким описанием отзыва, добавленного клиентом.

Вы можете попросить клиента повторно подать заявку в случае орфографических и общих ошибок или исправить опечатки самостоятельно ( онлайн-панель ).
Вы также можете войти в свою учетную запись и запросить новый отзыв у клиента (онлайн-панель ) .

Больше не нужно тратить время на редактирование вашей веб-страницы, чтобы добавить отзыв или отзывы клиентов. Наш сервис мгновенно сделает это за вас.

Шаг 5 — Просмотр результатов

Просто зайдите на страницу, на которой был размещен виджет, и новый отзыв появится вверху.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *