Этот урок можно назвать продолжением предыдущего мини-обзора где мы создавали круглые кнопки, одна из которых – заказ звонка, а вторая – обратная связь. Они являются лишь началом работы полной функции. Для завершения не хватает еще одной части, а именно модального окна.
По идее, оно должно появляться при нажатии на кнопку, чтобы создался эффект всплывающего окна с формой обратной связи. Форму будем создавать с помощью всем известного плагина «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; }
Обратите внимание на идентификатор перед тегами формы в стилях. У вас, естественно, он будет другой. Следовательно, его нужно поменять на свой, чтобы стили заработали. Узнать его можно в исходном коде.
Все сделал как указанно, но почему то кнопка не отображается, она появляется в самом низу сайта, такое ощущение что стили не могут подгрузиться, но если нажимаю на текст Обратная связь появляется пустое модальное окно. В чем может быть проблема. 3 файла на сайт загрузил в папку wp-includes, 1 в css и 2 в js
А зачем в папку wp-includes? это системная папка, в нее не нужно ничего загружать. Проверти все пути к файлам.
А в какую тогда? В папку с темой или в корневую папку сайта?
Все в папку с темой.
WordSmall, Спасибо. Заработало. Вот только нет значка конвертика на круглой кнопки и при нажатии не подгружаются стили модального окна.
Конвертик (иконка) это шрифт Awesome wordsmall.ru/grafika-i-di... -primenenie.html А стили нужно просматривать в исходном коде, что им мешает или с чем конфликтуют.
Добрый день, дайте ответ, пожалуйста, на два моих вопроса :
1. Как сделать так, чтобы в форме не нужно было обязательно вводить свой e-mail ( т.е. по желанию)
2. Как узнать свой идентификатор ? Где он находится?
Спасибо)
Добрый день.
1. Просто убрать звездочку
email*
.2. Откройте исходный код и найдите строку похожую на эту
<div role="form" class="wpcf7" id="wpcf7-f1199-p9-o1" dir="ltr" lang="ru-RU">
Вот это и есть идентификатор
id="wpcf7-f1199-p9-o1"
У меня почему то любой шорт код вставляется и уходит просто в футер, а ни как всплывающее окно. В чем может быть дело?
В смысле, уходит в футер?
WordSmall, пробовал и контакт форм 7 и WPforms, они просто в футуре располагаются и все,а кнопка в принципе не кликабельна. Рабочая форма со всеми полями размещается в футуре, вместо открывающегося модального окна.
Значит вы не правильно подключили мод.окно. Проверьте подключение, да и стили тоже.
Все отображаеся, но в каком файле, в каком месте и как прописать свою почту?
Свою почту? Туда куда будут приходить письма? Она указана в вашем профиле на сайте
Здравствуйте!
Что не так?
День добрый. Ширина? Так просто укажите какая вам нужно. Смотрите через стили через инструмент браузера
WordSmall, с шириной все понятно. это не модал, это в подвале отображается. Постоянно...
Значит не подключено модальное окно. Проверяйте пути подключения, подключение библиотеки jQuery
Здравствуйте!
Скажите пожалуйста как можно сделать несколько таких кнопок в нужных местах? Например на главной странице есть блок тарифы и там вставить в этот блок такую кнопку Заказать звонок с всплывающей формой обратной связи или Обратного звонка.
Ну т е в любом месте а не именно только шорткодом
Я уже писала комментарий, но вы почему-то удалили его. Ссылка на сайт где кнопка
Я пыталась вставить вместо шорткода саму форму связи, но она отображается на странице полностью а не прячется в модальное окно.
Пожалуйста ответьте!
Спасибо
Марина Александровна.
Добрый день. Все что попадает в папку «спам» или находится в подвешенном состоянии — удаляется. И ссылка на ваш сайт мне не нужна.
Для того, чтобы сделать несколько подобных кнопок, просто меняйте класс. Вот пример wordsmall.ru/html-i-css/k...s-animaciej.html. Как вставить в любом месте? Просто вставляйте в любое место. Это же обычный HTML код. И по необходимости меняйте стили: цвет, размеры, анимацию.
Уважаемый WordSmall!
Я подумала, что чтобы увидеть результат нужна ссылка на сайт.
А вот именно чтобы вставить без шорткода не получается. Два дня сижу с этим вопросом.
Про HTML знаю и вставляю в статью, но со шорткодом вордпресс режет код ( закоментирует его в такм виде )
и повторюсь, я пыталась вставить вместо шорткода саму форму связи, но она отображается на странице полностью а не прячется в модальное окно.
Если возможно, то пожалуйста может простой пример вставки HTML дадите???
Ну никак не выходит
Со шорткодом просто здорово, но остальное ...
Спасибо!
Марина, а вы все правильно делаете? Модальное окно — это jQuery плагин (можете любой другой подключить). Вы его подключили? К круглой кнопке привязывается модальное окно, чтобы по нажатию вызывать его. А форма связи, которая находится в модальном окне — это плагин Contact Forms 7. Пример обычного HTML можете скачать в статье (кнопка выше под картинкой).
Шорткод выводит форму, которую вы создаете с помощью плагина Contact Forms 7. Здесь
id="2400"
указываете свой идентификатор. Его можно узнать в админке напротив ваших форм.Вы знаете)))) я пытаюсь вставить не шорткод а саму форму в HTML, так как в статью шорткод мне не вставить, т е код PHP не вставляется в модальное окно ( вордпресс режет код php )
во проблема)))
Сейчас через код страницы вынула код формы, вставила в модальное окно и никак