[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
16 179
+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