на расчет стоимости
Перезвоним через пару минут
г. Н. Новгород,
ул. Есенина, 30
Меню сайта
Апдейт версии скрипта от 26.06.2024 — упростил форму, добавил новую защиту от спама.
Апдейт версии скрипта от 17.04.2020 — решил серьезно улучшить форму обратного звонка, из-за появления нового опыта и обновления технологий.
Апдейт версии скрипта от 30.04.2020 — поправил ошибку отображения кода.
jQuery 3+ предпочтительнее, но fancybox работает и с jQuery 1.9.1+ и jQuery 2+
Функционал:
Решил оставить комментарии для следующего сайта, чтобы было попроще делать красивый обратный звонок с удобной маской для ввода телефонного номера:
Для получения красивого всплывающего модального окна будем использовать плагин jquery — fancybox 3 весрии.
Джаваскрипт код — вставляем между тегами head и /head в шаблоне.
<script src="//web-ptica.ru/VRV-files/fancybox3/1.12.4-jquery.min.js"></script> <script src="//web-ptica.ru/VRV-files/fancybox3/jquery.maskedinput.min.js"></script> <script src="//web-ptica.ru/VRV-files/fancybox3/jquery.fancybox.min.js"></script> <script src="//web-ptica.ru/VRV-files/fancybox3/script-zvonka.js"></script> <link rel="stylesheet" type="text/css" href="//web-ptica.ru/VRV-files/fancybox3/jquery.fancybox.min.css"> <link rel="stylesheet" type="text/css" href="//web-ptica.ru/VRV-files/fancybox3/fancyvrv.css">
HTML код всплывающего модального окна — вставляем в самый низ шаблона перед /body
<div id="call" class="modalbox-wrap"> <div class="form-valid"> <form id="contact"> <div class="popup-title">Обратная связь</div> <input type="text" id="form_name" name="name" placeholder="Ваше Имя" required=""> <input type="text" id="form_phone" name="phone" placeholder="+7 (___) ___-__-__"> <input id="form_mail" name="mail" class="skrytvrv" value="-----" placeholder="E-mail" type="text" required=""> <textarea id="form_text" name="message" placeholder="Комментарий (пожалуйста, укажите адрес сайта, если он у вас есть)." required=""></textarea> <input type="text" class="form_vrv" name="vrvzam" placeholder="Почта"> <input type="text" class="form_vrv2" name="vrvzam2" placeholder="E-mail"> <input type="text" class="form_vrv3" name="vrvzam3" placeholder="vrv" value="vrv-text"> <input type="hidden" name="page_url" value="<? echo "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" /> <!--div class=" g-recaptcha"=""> <span class="konfdan">Согласие на обработку <a target="_blank" href="//web-ptica.ru/politika">персональных данных</a>.</span> <input type="submit" id="razrvrv-acc2" class="btn" value="заказать звонок" style=""> </form> </div> </div> <!-- Антиспам обратной связи --> <!--script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"></script> <script> function onloadCallback() { $('.g-recaptcha').each(function (index, el) { grecaptcha.render(el, { 'sitekey': '6LeeI58pAAAAAGstgW0p1g6Ndm9i7kHg_fCxYKOp', 'callback': function (response) { el.getElementsByTagName('textarea')[0].innerText = response; }, }); }); } </script--> <script> $( document ).ready(function() { setTimeout( function() { $(".form_vrv3").val('vrv'); }, 5100); }); </script>
Создаем PHP файл с названием «calc.php» кладем его в корень сайта с правами 644. Указываем почту, куда будут приходить письма, названия, можно подправить тело письма.
<?php /* $error = true; $secret = 'СЕКРЕТНЫЙ КОД recaptcha'; if (!empty($_POST['g-recaptcha-response'])) { $curl = curl_init('https://www.google.com/recaptcha/api/siteverify'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, 'secret=' . $secret . '&response=' . $_POST['g-recaptcha-response']); $out = curl_exec($curl); curl_close($curl); $out = json_decode($out); if ($out->success == true) { $error = false; } } if ($error) { echo 'Ошибка заполнения капчи!'; }else{ */ if(isset($_POST['name'])) { $name = htmlspecialchars($_POST['name']);} if(isset($_POST['phone'])) { $phone = htmlspecialchars($_POST['phone']);} if(isset($_POST['message'])) { $message = htmlspecialchars($_POST['message']);} if(isset($_POST['vrvzam'])) { $vrvzam = htmlspecialchars($_POST['vrvzam']);} if(isset($_POST['vrvzam2'])) { $vrvzam2 = htmlspecialchars($_POST['vrvzam2']);} if(isset($_POST['vrvzam3'])) { $vrvzam3 = htmlspecialchars($_POST['vrvzam3']);} if(isset($_POST['page_url'])) { $page_url = htmlspecialchars($_POST['page_url']);} $result = 0; $ipClienta = $_SERVER['REMOTE_ADDR']; $to = "ВАША_ПОЧТА"; //Здесь надо указать на какую почту будет приходить письмо $subject = "$phone $message"; //Название письма $text = "\nИмя: $name<br> Телефон: $phone<br> Примечание: $message<br> Урл страницы: $page_url<br> IP посетителя: $ipClienta<br>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма $headers .= "From: Заявка от $name <ОТ_КОГО_ПОЧТА>\r\n"; // от кого письмо if($vrvzam=='' and $vrvzam2=='' and $vrvzam3=='vrv'){$sending = mail($to, $subject, $text, $headers);} if($sending) $result = 1; echo $result; //} ?>
Последний штрих — вставляем саму кнопку на сайт.
<a href="#call" class="modalbox call"><span>ЗАКАЗАТЬ ОБРАТНЫЙ ЗВОНОК</span></a>
Наслаждаемся корректной работой.
Если нужно получать url страницы:
<input type="hidden" name="page_url" value="<? echo "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" />
Обновлен:
13.07.2022