[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
17 931
Реклама

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

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

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

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

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

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

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

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

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

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

                                Небольшое пожелание по части функционала: добавить возможность исключения определенных полей из колонки Данные. У меня в форме есть несколько скрытых полей (input type=«hidden») и они туда попадают, хотя не нужны совсем.
                                  Алексей
                                  Алексей Старожил
                                  23 мая 2015, 13:54
                                  очень классный функционал в callbackhutner — специальный скрипт смотрит за поведенчискими факторами посетителя сайта, и если это потенциальный клиент, то показывает окно автоматом. («остались вопросы? мы вам перезвоним за 8 сек.»). Актуальный функционал для вашего компонента "[CallBack] Обратный звонок")
                                    Владимир
                                    Владимир Старожил
                                    23 мая 2015, 14:54
                                    извини, но их реализация какая то навязчивая), очень, навязчивая.
                                    Илья
                                    Илья Старожил
                                    01 декабря 2015, 14:48
                                    Виталий, подскажите, при выводе формы ей присваивается класс 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
                                      Вероятно пробел ставит AjaxForm. Код можно удалить.
                                      Oleg K
                                      Oleg K Старожил
                                      03 декабря 2015, 21:27
                                      Купил модуль все нравится. Единственно, хотелось бы узнать, как настроить цели в google analytics для этого модуля. Сталкивался кто-нибудь с такой задачей?
                                        Ярослав Старовойтов
                                        10 декабря 2015, 23:03
                                        Приобрёл модуль. Созрел вопрос. У меня после нажатия кнопки «Заказать звонок» не появляется сообщения, что заявка отправлена и мы свяжемся с вами… Окно просто закрывается и всё, форма при этом отправляется на указанный email. Если вообще ничего не вводить, а просто нажать кнопку, то окно закрывается и всё (форма не отправляется). Как сделать, чтобы форма говорила «Спасибо..» после отправки и ругалась на незаполненные поля?
                                        В документации модуля ответов не нашёл.
                                          Ярослав Старовойтов
                                          11 декабря 2015, 16:17
                                          Разобрался. Bootstrap.min.js и JQuery.js у меня подключались внизу страницы, поставил их в тег Head и всё заработало как надо.
                                          Станислав
                                          Станислав Старожил
                                          09 мая 2016, 11:52
                                          Перестали заказы звонков сохранятся в базу
                                          Заказ на фронт проходит, вроде все четко, но в админке пусто
                                          Кто сталкивался? Помогите разобраться

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

                                          Could not find action file at: controllers/default/index.php
                                            Виталий Киреев
                                            Виталий Киреев Старожил
                                            10 мая 2016, 08:01
                                            Какие-то изменения на сервере были?
                                            Сергей
                                            Сергей Старожил
                                            24 июля 2016, 09:45
                                            Данный плагин можно использовать не только для звонка, но и письма и любых других форм?
                                            Форму я как понимаю могу доделать любую, но скорее всего она же не будет сохранять в базу другие поля?
                                              Виталий Киреев
                                              Виталий Киреев Старожил
                                              24 июля 2016, 15:27
                                              Форма может быть любая. По умолчанию в лог пишутся все поля формы, кроме указанных в &ignoreFields.
                                              Юрий
                                              Юрий Старожил
                                              24 июля 2016, 11:08
                                              Я снял опцию «Обратный звонок» после того, как идиоты стали разыгрывать своих друзей, заказывая на их телефоны звонки с моего сайта.
                                                adminixi
                                                adminixi Старожил
                                                03 сентября 2016, 18:31
                                                Возможно ли с помощью этого компонента распечатывать список оставленных заявок?
                                                  Максим
                                                  Максим Старожил
                                                  02 февраля 2017, 13:30
                                                  Подскажите а как можно сделать сообщение об удачной отправке. Вво номера сделал не чрез модалное окно а прям на сайте, в идеале хотелось бы вывести сообщение вместо поля ввода.
                                                  Вызываю так:
                                                  [[!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
                                                    При установке выдает ошибку

                                                    Консоль
                                                    Консоль запущена…
                                                    Пробуем установить пакет с подписью: 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
                                                    Merlan Старожил
                                                    04 октября 2017, 14:55
                                                    У меня на странице 4 формы, получается для каждой формы мне нужно создавать чанк или можно указать селекторы этих форм для их обработки?
                                                      Виталий Киреев
                                                      Виталий Киреев Старожил
                                                      04 октября 2017, 15:16
                                                      &target — Идентификатор для связи кнопки с формой. По умолчанию — callBackModal
                                                        Merlan
                                                        Merlan Старожил
                                                        04 октября 2017, 15:31
                                                        ну, а если форма не всплывающая?
                                                      Максим
                                                      Максим Старожил
                                                      05 ноября 2017, 05:42
                                                      Доброго времени суток! Вывожу форму отправки прям на странице сайта. Как можно реализовать сообщение об успешной отправке вместо самой формы? т.е див с формой чтоб заменился дивом с сообщением?
                                                        Markus
                                                        Markus Старожил
                                                        27 сентября 2018, 18:39
                                                        Привет. Перед покупкой этого компонента решил потестить его. Создал на modstore тестовый сайт. Загрузил компонент. Форма на сайте данные отправляет, но они не появляются в панеле управления. Журнал ошибок пуст. В чем может быть дело?
                                                          Andrei
                                                          Andrei Старожил
                                                          12 августа 2019, 16:39
                                                          Для настройки рекапчи мне нужно добавить хук recaptchav3. Где его вставлять, в вызов CallBack или какой-то особенный способ?
                                                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                            49