[CallBack] Обратный звонок

Раз из раза приходилось настраивать одно и то же решение для вывода формы обратного звонка, и мне это надоело. Поэтому создал данный компонент на основе этого решения. А решение такое: на сайте каким-либо образом выводится ссылка «Обратный звонок», по нажатию на которую выводится модальная форма. В этой форме пользователь может указать свой номер телефона и как к нему обратиться при звонке. Такой нехитрый, но полезный прием для повышения конверсии сайта.

Как работает компонент:
При установке он подтягивает компоненты AjaxForm и FormIt, с помощью которых, собственно, происходит вывод и обработка формы, хотя они теоретически могут быть заменены с помощью параметров &wrapperSnippet и &snippet соответственно. Все параметры по умолчанию настроены так, чтобы при установке и простом вызове сниппета [[callBack]] получить рабочий обратный звонок.

По умолчанию используется оформление и модальные окна из Bootstrap, а так же jQuery Mask Plugin для указания маски ввода телефона.



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

Еще одна фишка — это ведение журнала заявок на обратный звонок. Он предоставляет возможность поиска по имени и телефону клиентов, оставить комментарий к заявке и выводит все дополнительные поля (небольшая фишечка — добавьте лексикон вида callback_item_имяполя, чтобы вместо, например, поля city выводило Город). Сам лог запускается с помощью хука callBackLog для FormIt, т.е. его можно использовать и отдельно от компонента для других форм.



Документация к компоненту на docs.modx.pro.
А сам компонент доступен в репозитории modstore.pro.

Внимание! Компонент разрабатывается под MODX 2.3 и выше. Он должен работать и в более старых версиях, но с деградацией внешнего вида в части админки. Для вывода стандартных чанков, идущих с компонентом, рекомендуется либо совсем не подключать jQuery на странице (AjaxForm сделает это сам), либо использовать версию не ниже 1.9.0 — т.к. иначе Bootstrap будет ругаться на старую версию.

Считаю, основную задачу — максимально быстрая настройка рабочего решения обратного звонка — компонент выполняет на 100%. Пожелания и предложения по развитию компонента принимаются здесь или на странице компонента в репозитории. Пока рабочие идеи — вынесение настройки почты на страницу компонента, чтобы менеджеру не надо было лезть в системные настройки менять emailsender или параметр сниппета &emailTo. А так же можно будет отметить заявки в журнале как важные, чтобы они выводились выше других.
Виталий Киреев
28 января 2015, 04:37
modx.pro
9
12 426
+10

Комментарии: 49

Николай Загумённов
28 января 2015, 08:27
0
Круто) в админке сохраняются!)
Виталий Валерьевич
28 января 2015, 11:10
1
0
Если планируется расширение функционала, то, есть несколько идей, касаемо улучшений по работе с лидами.

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

Вообщем, на реализацию всего этого не рассчитываю, но перспективы у компонента есть весьма не плохие!
Evgeny Epifanov
28 января 2015, 12:48
0
ведение журнала заявок на обратный звонок
— вот это вообще здорово!
    Павел Левин
    28 января 2015, 13:10
    0
    Email уведомления предусмотрены (для менеджеров или кто там этим планирует заниматься)?

    В целом прикольная штуковина, сейчас сторонние виджеты использует народ с фишкой, перезвоним за 30 секунд и т.п., ну там система дозвона еще есть, но не суть)
Игорь Терентьев
28 января 2015, 13:31
2
+1
Я обычно делаю простую форму, которая через sms.ru отправляет смс-сообщение с номером телефона клиенту (до 5 в день бесплатно).

    Андрей
    Андрей
    16 марта 2015, 13:19
    0
    Удобная вещь!
    И сохранение в базу тоже можно прикрутить)
Сергей Шлоков
28 января 2015, 15:00
0
А на гитхабе есть?
abduselim
28 января 2015, 15:10
-2
Используем бесплатный модуль обратного звонка от consultant-web.ru/callme/
Виталий Киреев
28 января 2015, 18:32
0
Компонент доступен в репозитории за 490 рублей.
    Владимир
    29 января 2015, 13:00
    0
    Регулярно покупаю расширения в репозитарии modstore.pro/ и www.modmore.com/ (несколько десятков покупок). В основном это ms2Gallery и расширения для магазина. Очень уважаю труд разработчиков.
    Потому, без обид, просто соображение по теме стоимости вашего расширения, в котором львиная доля функционала от бесплатных AjaxForm и FormIt, — ДОРОГО.
    PS Но сейчас же куплю, вам на удачу))) Не принимайте замечание как негатив!
    Wassi Wassinen
    29 января 2015, 13:42
    0
    Соглашусь. Покупаю для каждого проекта по несколько дополнений. Это дополнение понравилось, но 490 р. — дорого. Не потому, что денег нет, просто то же самое может сваять даже такой профан, как я. Благо, Василий показал, как работать с кастомизацией админки. А все остальное — бесплатные jQuery плагины и дополнения MODx.

    Спасибо за дополнение. Буду собирать с гитхаба. :)
Павел Пустота
28 января 2015, 21:24
1
0
Как идея для развития — удобная настройка целей Яндекс Метрики. Добавил id и цель готова.
yani
06 февраля 2015, 10:21
+1
Привет, отличный компонент. Я делала для сайтов похожий на основе callback hunter
yadi.sk/d/uFk_H4opeVjET — скачать тут
картинки)
НА сайте висит такая кнопка:

Потом появляется такая картинка:

И менеджеру уходит SMS на телефон)
Настройки в админке:
    Воеводский Михаил
    25 марта 2015, 08:57
    0
    Яна, Вам интересно доработать функционал, чтобы происходило именно телефонное соединение менеджера с клиентом?
      yani
      25 марта 2015, 08:58
      0
      К сожалению, думаю моих знаний на такое не хватит
    Алексей
    23 мая 2015, 13:50
    0
    У них же просто встраивается .js файл на сайт, и все? зачем компонент, поясните плиз…
      yani
      23 мая 2015, 13:51
      0
      Это компонент свой, а то платный
    Александр
    26 мая 2018, 19:17
    0
    а возможность отправки контактов на почту можно сделать?
      yani
      26 мая 2018, 19:59
      0
      я думаю можно все ) если исходники расковырять
      Виталий Киреев
      27 мая 2018, 16:58
      0
      Не надо там ничего ковырять. Это же надстройка над AjaxForm, который в свою очередь надстройка над FormIt у которого есть хук email.
Денис
24 марта 2015, 20:54
+1
А данный плагин можно использовать, если форма вызывается не в модальном окне, а расположена прямо на странице сайта?

Хочу приспособить плагин для сбора вопросов с сайта.
    Виталий Киреев
    25 марта 2015, 06:30
    +1
    Конечно, нужно просто убрать модальное окно в чанке tpl.callBack.form, а tpl.callBack.item оставить пустым.
    yani
    25 марта 2015, 08:59
    0
    Думаю да, но проще былобы банальный FormIt использовать. Вероятность глюков меньше) тут все таки ajax
Leonid Krylov
02 апреля 2015, 18:38
0
Компонент обновлен в репозитории modstore.pro:
1.0.0-pl2
==============
— Фикс бага с созданием записи в логе
Наумов Алексей
24 апреля 2015, 10:42
0
Добрый день!

Небольшое пожелание по части функционала: добавить возможность исключения определенных полей из колонки Данные. У меня в форме есть несколько скрытых полей (input type=«hidden») и они туда попадают, хотя не нужны совсем.
Алексей
23 мая 2015, 13:54
0
очень классный функционал в callbackhutner — специальный скрипт смотрит за поведенчискими факторами посетителя сайта, и если это потенциальный клиент, то показывает окно автоматом. («остались вопросы? мы вам перезвоним за 8 сек.»). Актуальный функционал для вашего компонента "[CallBack] Обратный звонок")
    Владимир
    23 мая 2015, 14:54
    0
    извини, но их реализация какая то навязчивая), очень, навязчивая.
Илья
01 декабря 2015, 14:48
0
Виталий, подскажите, при выводе формы ей присваивается класс callback_ajax_form
И он прописывается с пробелом перед ним, вот так class=" callback_ajax_form"
Вроде мелочь, а валидатор ругается.
Как это исправить?
И ещё вопрос:
Насколько я понимаю, вот этот код
$modx->regClientScript(preg_replace(array('/^\n/', '/\t{7}/'), '', '
    <script type="text/javascript">
		if(typeof jQuery == "undefined") {
			document.write("<script src=\"//code.jquery.com/jquery-1.11.2.min.js\" type=\"text/javascript\"><\/script>");
		}
	</script>
'), true);
подтягивает Jquery при условии если он не подключен. Если Jquery подключен, то его можно удалить?
    Виталий Киреев
    01 декабря 2015, 16:01
    0
    Вероятно пробел ставит AjaxForm. Код можно удалить.
Oleg K
03 декабря 2015, 21:27
+1
Купил модуль все нравится. Единственно, хотелось бы узнать, как настроить цели в google analytics для этого модуля. Сталкивался кто-нибудь с такой задачей?
Ярослав Старовойтов
10 декабря 2015, 23:03
0
Приобрёл модуль. Созрел вопрос. У меня после нажатия кнопки «Заказать звонок» не появляется сообщения, что заявка отправлена и мы свяжемся с вами… Окно просто закрывается и всё, форма при этом отправляется на указанный email. Если вообще ничего не вводить, а просто нажать кнопку, то окно закрывается и всё (форма не отправляется). Как сделать, чтобы форма говорила «Спасибо..» после отправки и ругалась на незаполненные поля?
В документации модуля ответов не нашёл.
    Ярослав Старовойтов
    11 декабря 2015, 16:17
    0
    Разобрался. Bootstrap.min.js и JQuery.js у меня подключались внизу страницы, поставил их в тег Head и всё заработало как надо.
Станислав
09 мая 2016, 11:52
0
Перестали заказы звонков сохранятся в базу
Заказ на фронт проходит, вроде все четко, но в админке пусто
Кто сталкивался? Помогите разобраться

Выскакивало пару раз это

Could not find action file at: controllers/default/index.php
Сергей
24 июля 2016, 09:45
0
Данный плагин можно использовать не только для звонка, но и письма и любых других форм?
Форму я как понимаю могу доделать любую, но скорее всего она же не будет сохранять в базу другие поля?
    Виталий Киреев
    24 июля 2016, 15:27
    0
    Форма может быть любая. По умолчанию в лог пишутся все поля формы, кроме указанных в &ignoreFields.
Юрий
24 июля 2016, 11:08
0
Я снял опцию «Обратный звонок» после того, как идиоты стали разыгрывать своих друзей, заказывая на их телефоны звонки с моего сайта.
adminixi
03 сентября 2016, 18:31
0
Возможно ли с помощью этого компонента распечатывать список оставленных заявок?
Максим
02 февраля 2017, 13:30
0
Подскажите а как можно сделать сообщение об удачной отправке. Вво номера сделал не чрез модалное окно а прям на сайте, в идеале хотелось бы вывести сообщение вместо поля ввода.
Вызываю так:
[[!callBack?
&tpl=``
]]
<form role="form" method="POST" action="[[~[[*id]]]]" class="">
    <div class="input-group">
        <input type="text" class="form-control fl-l" id="name" name="name" value="[[!+fi.name]]" placeholder="Ваше имя:" style="border-right: 0">
    <span class="error error_name">[[+fi.error.name]]</span>
        <span class="input-group-btn" style="width:0px;"></span>
        <input type="text" class="form-control"  id="phone" name="phone" value="[[!+fi.phone]]" data-mask="+0(000)000-00-00" placeholder="Номер телефона:">
    <span class="error error_phone">[[+fi.error.phone]]</span>
        <span class="input-group-btn">
            <button class="btn btn-default" type="submit" >
                <i class="glyphicon glyphicon-send"></i>
            </button>
            <button type="button" class="callback-close btn btn-success center-block hidden" data-dismiss="modal" aria-hidden="true">[[%callback.close]]</button>
        </span>
    </div><!-- /input-group -->
</form>
Тов.Жюков
23 августа 2017, 12:57
0
При установке выдает ошибку

Консоль
Консоль запущена…
Пробуем установить пакет с подписью: callback-1.1.0-pl
Пакет найден… сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета…
Рабочее пространство загружено, сейчас устанавливаем пакет…
Trying to install FormIt. Please wait…
Error 23000 executing statement: INSERT INTO `modx_transport_packages` (`signature`, `created`, `state`, `workspace`, `provider`, `disabled`, `source`, `package_name`, `version_major`, `version_minor`, `version_patch`, `release`, `release_index`) VALUES ('formit-3.0.2-pl', '2017-08-23 12:55:21', 1, 1, 1, 0, 'formit-3.0.2-pl.transport.zip', 'FormIt', 3, 0, 2, 'pl', 0) Array ( [0] => 23000 [1] => 1062 [2] => Duplicate entry 'formit-3.0.2-pl' for key 'PRIMARY' )
Could not save package FormIt
Trying to install AjaxForm. Please wait…
Загрузка рабочего пространства пакета…
Рабочее пространство загружено, сейчас устанавливаем пакет…
AjaxForm was successfully installed
PHP notice: Undefined index: package_action
Успешно установлен пакет callback-1.1.0-pl
Merlan
04 октября 2017, 14:55
0
У меня на странице 4 формы, получается для каждой формы мне нужно создавать чанк или можно указать селекторы этих форм для их обработки?
    Виталий Киреев
    04 октября 2017, 15:16
    0
    &target — Идентификатор для связи кнопки с формой. По умолчанию — callBackModal
      Merlan
      04 октября 2017, 15:31
      0
      ну, а если форма не всплывающая?
Максим
05 ноября 2017, 05:42
0
Доброго времени суток! Вывожу форму отправки прям на странице сайта. Как можно реализовать сообщение об успешной отправке вместо самой формы? т.е див с формой чтоб заменился дивом с сообщением?
Markus
27 сентября 2018, 18:39
0
Привет. Перед покупкой этого компонента решил потестить его. Создал на modstore тестовый сайт. Загрузил компонент. Форма на сайте данные отправляет, но они не появляются в панеле управления. Журнал ошибок пуст. В чем может быть дело?
Andrei
12 августа 2019, 16:39
0
Для настройки рекапчи мне нужно добавить хук recaptchav3. Где его вставлять, в вызов CallBack или какой-то особенный способ?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
49