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

В работе над модальным окном я воспользуюсь свободным плагином «Modal Window Effects» (демо). Вы же можете использовать любой другой (даже специальный) плагин окна для WordPress. Надо лишь привязать вызов к нашей кнопке, и все будет в ажуре. Поехали!
Кнопка со сплывающим окном обратной связи
Первым делом займемся установкой на сайт кнопки с окном, и уже потом перейдем к форме связи. Сложного в этом ничего нет. Из архива, скаченного выше по ссылке, нужно подключить три файла: два файла из папки «modal — JS» и один из папки «modal — CSS». Все они относятся к модальному окну, это для ясности.
Открываем файл functions.php и в конце перед знаком ?> (или там, где вам удобнее) подключаем файлы таким образом:
function my_scripts_method() {
// модельное окно
wp_enqueue_script( 'mod-scripts', get_template_directory_uri() . '/modal/js/classie.js', array(), null, true);
wp_enqueue_script( 'modef-scripts', get_template_directory_uri() . '/modal/js/modalEffects.js', array(), null, true);
}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
/* стили модального окна */
function wpdocs_theme_name_scripts() {
wp_enqueue_style( 'style-mod', get_template_directory_uri() . '/modal/css/component.css');
}
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );
Теперь открываем файл style.css и добавляем еще такой код (это стили кнопки):
/*кнопка обратной связи*/
.email-bt {
background: #F95C18;
border-radius: 50%;
box-shadow: 0 8px 10px rgba(249, 92, 24, 0.3);
cursor: pointer;
border: 2px solid transparent;
display: block;
height: 75px;
width: 75px;
text-align: center;
position: fixed;
left: 8%;
bottom: 18%;
z-index: 999;
transition: .3s ease-in-out;
-webkit-animation: email-an linear 1s infinite;
animation: email-an linear 1s infinite;
}
.email-bt:hover {
background: #fff;
border: 2px solid #F95C18;
}
.email-bt .text-call {
height: 75px;
width: 75px;
border-radius: 50%;
position: relative;
}
.email-bt .text-call:after {
content: "\f0e0";
display: block;
font-family: fontawesome;
color: #fff;
font-size: 34px;
line-height: 75px;
height: 75px;
width: 75px;
opacity: 1;
transition: .3s ease-in-out;
-webkit-animation: opsimple 3s infinite;
animation: opsimple 3s infinite;
}
.email-bt .text-call:hover:after {
opacity: 0;
}
.email-bt .text-call span {
color: #F95C18;
display: block;
left: 50%;
top: 50%;
position: absolute;
transform: translate(-50%, -50%);
z-index: 1;
opacity: 0;
font-size: 11px;
line-height: 12px;
font-weight: 600;
text-transform: uppercase;
transition: .3s ease-in-out;
font-family: 'montserrat', Arial, Helvetica, sans-serif;
}
.email-bt .text-call:hover span {
opacity: 1;
}
@keyframes email-an {
0% {
box-shadow: 0 8px 10px rgba(249, 92, 24, 0.3), 0 0 0 0 rgba(249, 92, 24, 0.2), 0 0 0 0 rgba(249, 92, 24, 0.2)
}
40% {
box-shadow: 0 8px 10px rgba(249, 92, 24, 0.3), 0 0 0 15px rgba(249, 92, 24, 0.2), 0 0 0 0 rgba(249, 92, 24, 0.2)
}
80% {
box-shadow: 0 8px 10px rgba(249, 92, 24, 0.3), 0 0 0 30px rgba(249, 92, 24, 0), 0 0 0 26.7px rgba(249, 92, 24, 0.067)
}
100% {
box-shadow: 0 8px 10px rgba(249, 92, 24, 0.3), 0 0 0 30px rgba(249, 92, 24, 0), 0 0 0 40px rgba(249, 92, 24, 0.0)
}
}
@keyframes opsimple {
0% {
opacity: 0;
transform: rotate(0deg);
}
40% {
opacity: 1;
}
80% {
opacity: 1;
}
100% {
opacity: 0;
transform: rotate(360deg);
}
}
/* конец кнопки звязи */
Осталось вывести разметку.
Открываем файл footer.php и перед функцией <?php wp_footer(); ?> вставляем HTML-разметку. На этом этапе у вас должна получиться плавающая кнопка на странице, по нажатию которой появляется всплывающее окно (пока что пустое).
<div class="email-bt md-trigger" data-modal="modal-9">
<div class="text-call">
<span>Обратная<br>связь</span>
</div>
</div>
<div class="md-modal md-effect-9" id="modal-9">
<div class="md-content">
<h3>Обратная связь</h3>
<div>
<!-- сюда вставить функцию вызова формы связи (шорткод) -->
</div>
</div>
</div>
<div class="md-overlay"></div>
Форма связи
Ну вот, дошли до последней части «урока».
Думаю, плагином «Contact Forms 7» все умеют пользоваться. После того, как в нем создадите новую форму, вместо стандартного кода, что образовывается по умолчанию, добавьте этот:
<label>[text* your-name placeholder "Как к Вам обращаться *"]</label> <label>[email* your-email placeholder "Ваш e-mail *"]</label> <label>[textarea your-message placeholder "Сообщение..."]</label> [submit "Отправить"]
Теперь выводим форму в разметке выше в указанном там месте:
<?php echo do_shortcode( 'тут шорткод формы' ); ?>
Стили оформления, по идее, должны подхватиться из вашей текущей WordPress темы, но можно прописать свои. В файл style.css прописываем такой код:
/*форма связи в модальном окне */
#wpcf7-f2400-o1 form {
margin-left:auto;
margin-right:auto;
}
#wpcf7-f2400-o1 input, #wpcf7-f2400-o1 textarea {
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
}
#wpcf7-f2400-o1 textarea{
background: rgba(0, 0, 0, 0.1);
width: 100%;
height: 110px;
border: 1px solid rgba(255,255,255,.6);
border-radius: 2px;
display:block;
font-family: 'Source Sans Pro', sans-serif;
font-size:15px;
color:#444;
padding:20px;
margin-bottom:20px;
}
#wpcf7-f2400-o1 input {
background: rgba(0, 0, 0, 0.1);
width: 100%;
height: 48px;
border: none;
border-radius: 4px;
display:block;
font-family: 'Source Sans Pro', sans-serif;
font-size:15px;
color:#444;
padding-left:20px;
padding-right:20px;
margin-bottom:20px;
}
#wpcf7-f2400-o1 input[type=submit] {
cursor:pointer;
}
::-webkit-input-placeholder {
color: #999;
}
:-moz-placeholder{
color: #999;
}
::-moz-placeholder {
color: #999;
}
:-ms-input-placeholder {
color: #999;
}
#wpcf7-f2400-o1 input:focus, #wpcf7-f2400-o1 textarea:focus {
background-color: rgba(0, 0, 0, 0.15);
}
#wpcf7-f2400-o1 .wpcf7-submit {
margin:0 auto;
background: #F95C18;
padding: 10.5px 21px;
border-radius: 4px;
color: #fff;
font-size:18px;
transition:all 0.3s;
}
#wpcf7-f2400-o1 .wpcf7-submit:hover {
background: #E34602;
}
Обратите внимание на идентификатор перед тегами формы в стилях. У вас, естественно, он будет другой. Следовательно, его нужно поменять на свой, чтобы стили заработали. Узнать его можно в исходном коде.
А форма у меня создается через плагин WPForms
Через статью шорткод вставляется просто без php
))))) Я уже это поняла и все получилось! СПАСИБО большое за кнопку и за ответы!
Но есть маленький вопрос
Не откажите в помощи)))
Все получилось, почта отправляется и приходит письмо админу
НО! после отправки страница не перенаправляет на ответ клиенту типа Спасибо за заявку или по другому, а просто опускается вниз до кнопки и все, а вот если еще раз нажать на кнопку, то тогда открывается не форма связи( обратный звонок) а именно уже ответ
Подскажите пожалуйста как сделать, чтобы после отправки клиент увидел сообщение о том, что его заявка принята?
Спасибо!
В таком случае, Марина, форма связи должна быть на ajax, чтобы страница не перезагружалась при отправки письма. Плагин Contact Forms 7 для этого подходит. Вот пример uslugi.wordsmall.ru/uslug...sajta-prajs-list Большая кнопка «заказать услугу». Просто для примера отправьте сообщение.
Доброй ночи! Скажите, а у вас есть урок по созданию всплывающей формы связи на ajax?
Если да, то можно ссылочку на статью!
Спасибо!
Здравствуйте. Вам просто нужна форма связи на ajax, а всплывающей ее делает модельное окно. Я уже говорил, плагин Contact Forms 7 подойдет, он на ajax. Или в интернете поищите скрипт формы на ajax.
У меня ничего не получилось сделать, отправку php не осилил. В итоге пришлось stepFORM поставить, пока в коде не разберусь до конца.
Там ничего сложного. Проверяйте пути при подключении скриптов и стилей.
А какую кнопку можно использовать, чтобы сразу позвонить?
<a href="tel:+555555555" rel="nofollow ugc">Позвонить</a>Если подключать в теле страницы то не подхватывается стиль формы во всплывающем окне
Ну что за бред. Вы хоть разберитесь в вопросе.
Не понимаю куда надо подключить три файла: два файла из папки «modal — JS» и один из папки «modal — CSS».
Еще раз статью прочтите «...Открываем файл functions.php...»
Смотрите, скачал я эти файлы, а дальше что с ними делать ?
Папку modal загружаете себе на хостинг, в папку активной темы. Подключаете из нее файлы, кодом из статьи. Дальше по инструкции. css кнопки, html модального окна и так дальше.
WordSmall, спасибо