Назар Токар
Опубліковано: 26 Березня 2012
Оновлено: 6 Травня 2017

Привет, друзья! Помните, где-то в архивах этого блога лежал скрипт заказа обратного звонка CallMe? Он оказался на удивление востребованным, но ещё к тому же и на удивление недоработанным. Эту недоработку мы решили доработать и, доработав, выложить здесь. Тестером выступал Андрей sheriff02. Сначала кратко опишу, что было сделано.

  1. Найдено решение, как решить конфликт с библиотекой MooTools, за что спасибо Евгению из комментариев. В том числе исправлены возможные конфликты с другими js-фреймворками.
  2. Файл фона кнопки button.png переименован в callme.png, чтобы исключить конфликт с AdBlock, спасибо manachboriska. Кстати, теперь можно скачать исходник кнопки в psd, чтобы исправить текст на любой по желанию. Или вместо зелёного сделать фон с огнями и драконами.
  3. Евгений предлагал сделать проверку отправленности заявки с использованием cookies, но этот вариант не катит. Злоумышленник может сколько угодно чистить куки и слать повторные запросы, поэтому мы поступили по-другому. В локальное хранилище (jquery.storage) записывается время последней отправки сообщения. Если запрос повторяется, скрипт сначала проверит, как давно был предыдущий. Если меньше, чем час назад, то повторяться он не будет. Этот интервал можно исправить на любой, хоть до 10 секунд в /callme/index.php.
  4. Добавили необязательное для заполнения поле «комментарий». Если вы, как и я, считаете, что оно лишнее, просто убирайте его из кода.
  5. Теперь в письме с уведомлением будет приходить и адрес страницы, с которой был сделан запрос и ip-адрес пользователя.
  6. Через 10 секунд после отправки форма автоматически скрывается и очищается.
  7. Исправлено множество других мелких вопросов.

Визуально форма стала симпатичнее: скругённые углы, тень блока, и всё такое. Увы, пользователи Internet Explorer, как обычно, не оценят всей красоты, т.к. часть фишек доступна только в нормальных браузерах.

Уведомление в sms

Смс-уведомление мы решили не делать. Во-первых, придется возиться с установкой модуля отправки у вас на сервере, а во-вторых, каждая смс будет стоить денег. Это нужно, например, средним и большим инет-магазинам. Если нужно, сделаем, но за отдельную плату. Обещаю сильно хамить и срывать все возможные сроки :).

Как подключить и настроить

Установка и настройка Callme и настройка SMS-уведомлений.

Что-то не получается?

Для FAQ есть отдельный пост: возможные ошибки при установке Callme, эта запись постоянно обновляется, а свежая редакция указана над текстом.

Мотивация

Ещё было решено немного сменить политику распространения скрипта. Он по-прежнему будет бесплатным, но теперь с моим копирайтом в виде очень маленькой ссылки справа в форме.

Бесплатный вариант

Пишите «спасибо» и адрес сайта, где установлен скрипт, в комментариях, тогда ссылка и дальше будет радовать ваш глаз.

Платный вариант

Если хотите убрать копирайт, отправьте 7$ или 200 рублей мне на счёт по webmoney. Это стоимость 4-х чашек кофе, совсем небольшая плата за многие часы работы и тестов. Мне будет приятно и это будет хорошим стимулом для дальнейшей работы над скриптом. В примечании к платежу пишите пожалуйста адрес сайта.

Demo / Download

Посмотреть скрипт в работе традиционно можно на мебельном магазине. Обо всех замеченных багах пишите в комментариях и на почту. Спасибо.

А скачать скрипт можно тут.

← Тисни «Лайк», щоб читати нас у Фейсбуці
Tokar_ua Будьте в курсі. Долучайтесь до нашого каналу в Telegram.

    Поширити у Фейсбуці
    Надіслати у Messenger
    Надіслати в Telegram
    Надіслати у WhatsApp
    Зберегти в Pocket

    Додати коментар

    Такий e-mail вже зареєстровано. Скористуйтеся формою входу або введіть інший.

    Ви вказали некоректні логін або пароль

    Вибачте, для коментування необхідно увійти.

    373 коментаря

    спочатку нові
    за рейтингом спочатку нові за хронологією
    Станислав

    Добрый день.

    Можно ли заставить работать модуль через https?

    На сайте установлен сертификат, однако при нажатии на кнопку в событие передается адрес http, а не https

    Автор
    Назар Токар

    @Станислав, дайте ссылку на рабочую страницу.

    Здравствуйте. Скажите, а можно назначить одному полю уникальный класс?

    Автор
    Назар Токар

    В callme.js добавить проверку if(name='имя'){ //добавить класс }

    Скажите пожалуйста, как убрать из СМС источник трафика. ?

    Хочу сделать сайт с обратным звонком, но так что бы клиент мог сам выбрать удобное время( с таблицей интервала времени 45 мин. Например с 9-00 следующий 9-45 и т.д. на две текущие недели) Как это сделать?

    Автор
    Назар Токар

    @Михаил, после 9:45 какой следующий шаг: 10:00 или 10:30?

    Если в 10:00, то шаг 45 минут нарушится. Если 10:30, то как быть, если клиенту хочется, чтобы перезвонили в 10 часов ровно?

    Вы можете аргументировать необходимость решения подобной задачи? На данный момент это вообще ни о чем.

    Очень интересует вопрос. Есть ли в скрипте функция
    КАПЧА.

    Автор
    Назар Токар

    Нет. Зачем.

    @Назар Токарь, очень жаль, что нет капчи ( Я в PHP не сильна, второй день бьюсь, не могу прикрутить, а нужна дозарезу...

    только отправила сообщение и все получилось)
    Спасибо, Вам, кстати, за скрипт! Очень удобный и универсальный!

    не получется скачать ваш скрипт, после нажатии кнопки скачать ничего не происходит на почту ничего не приходит

    Автор
    Назар Токар

    @Артем, какой у вас браузер? Включен ли JS?

    Добрый вечер. Сайт

    Виснет на Идет отправка...

    при открытии index.php:

    Notice: Undefined index: ctime in /sata1/home/users/avtozvyk/www/http://www.limozt.com.ua/callme/index.php" rel="nofollow" target="_blank">http://http://www.limozt.com.ua/callme/index.php on line 29

    Notice: Undefined index: cs in /sata1/home/users/avtozvyk/www/http://www.limozt.com.ua/callme/index.php" rel="nofollow" target="_blank">http://http://www.limozt.com.ua/callme/index.php on line 100

    {"result": "error","cls": "c_error","time": "","message": "Заполните все поля"}

    Понять не могу в чем проблема... Так же у Вас в примере есть диапазон времени звонка. Сейчас Вы это убрали из скрипта? Заранее спасибо за помощь.

    Всем привет, Назар тут такая тема, почему после установки скрипта, у меня сторчались шрифты на сайте, то есть все описания стали маленькими, как на главной странице так и на остальных, и ни в какую не укрупняются, как только скрипт убираю, сразу все в поряде, убирать не охота так как оч удобная штука ( за что тебе спасибо)) и к тому же купленная))) жду ответ всем успехов.

    Автор
    Назар Токар

    Ссылку дайте

    @Дедушка, вам я так понял некогда, воскресенье)), я удалил эту строчку и сайт перестало шторить, { font-family: tahoma; font-size: 12px; } всем удач.успехов.

    Автор
    Назар Токар

    Эта строчка играет роль только если у вас не указаны размеры текста для основной разметки. Укажите что-нибудь типа:
    body { font-size: 14px; }

    http://nlp.com.ua/
    сделал все по инструкции, а
    пишет отправка и все...

    Автор
    Назар Токар

    @Дэнни, а это что?

    Можно Вашу почту? Я хочу отправить картинки ошибок. Коротко опишу:
    распаковал у себя в корневой папке, прописал в голове но оно пишет что не удается сохранить файл index.php. Писал Вам на nazar....@gmail.com но Вы не отвечаете.

    Автор
    Назар Токар

    Ну вообще-то я в десятый раз напоминаю, что вся помощь по скриптам на форуме.

    "Max" ты *** и руки у тя корявые, поэтому ничего не получилось у тебя... )))

    Доброй ночи. Я не осуждаю ни Вас, ни Ваше отношение к кому либо - просто не имею на это право. Занимаюсь продвижением сайтов - поэтому сайт обискивал с помощью Google. Ответа все равно не нашел.

    2 Сергей. Я не сомневаюсь в талантливости Назара, но на этом скрипте он не сможет очень много заработать. Количество запросов в месяц в Google [opencart обратный звонок] - 22 , [скрипт заказать обратный звонок] - 22. Суммарно вместе с подобными в месяц не дойдет и до 100 по всему миру. С англоязычными запросами все так же печально. Сайт в топе потому что запросы низкочастотные. Нужно либо цены до облаков либо искать более востребованную тематику.

    По поводу скрипта - имел ввиду, что пробовал вставить на сайт загруженный скрипт - не сработало. В примере работает. Искал причину в чем-то другом - выкачал все файлы которые мог с примера на сайте (index.php оставил со скачанного архива, то есть он был, конечно же), вставлял все в копию index.html. Все файлы поместил в одну папку, путь указал везде по принципу src="check.js". Все равно отправка просто висит. П.С.:Прошу прощение за много буков. В Спарте меня бы уже, наверное, убили.

    2 Бутко Игорь. 1) Я имею уважение и к автору и к его труду.

    2) После попытки вставки в cms, удаления base, смены путей к файлам и еще множества всего, что ранее рекомендовали сделать в комментах — результат 0. Я просто начал имитировать работу демо с теми же файлами у себя на компьютере. Но и это отказалось работать. Если бы неправильно подключались (не тот путь файлов, к примеру) джаваскрипты — окошко бы не выезжало. А так все вроде работает, но на отправке зависает. Поэтому я и назвал продукт «полуготовым».

    Автор
    Назар Токар

    Сергей, пожалуйста, напишите мне на почту с советом по монетизации, я всегда рад новым идеям.

    Я могу сделать проверку наличия копирайта при отправке уведомления. Реализовать это не очень сложно и без знания js обойти тоже сложно, хоть и вполне реально. Но предпочитаю потратить это время на исправление старых ошибок и написание новых :-).

    Автор
    Назар Токар

    Max, вечер добрый. У кого скрипт заработал, редко пишут "Спасибо, всё ок", а у кого что-то не получилось - задают вопрос. Вполне нормальный процесс. Я же чем могу - помогаю.

    По вашему вопросу: js отправляет данные в php, тот ему отвечает об ошибке или успешной отправке, и js выдаёт вам этот ответ в поле под формой. Что он может вам выдать, если /callme/index.php у вас нет? :-). Он продолжает ждать ответа по json от и продолжает писать "Отправка".

    У вас сложилось впечатление, что я неуважительно отношусь к пользователям скрипта. Независимо от того, платят ли мне за него (а почти никто не платит), я стараюсь помочь. Исключения: хамство, сотый повтор одного и того же вопроса или когда удаляют копирайт и просят помочь :).

    Бутко Игорь

    Уважаемый МАХ, да потому что все обнаглели. Тут не написано что скрипт универсален... У каждого свои настройки на сервере и автор не гарантирует 100% работу на каждой cms... Имейте уважение к атору, какой дает вам бесплатно, как вы говорите "полуготовый продукт". Если вас не устраивает такой продукт, то напишите свой или заплатите! Поначалу автор помогал всем, а со временем вопросов ставало все больше и больше... Кто будет бесплатно решать ваши проблемы?

    Лично у меня на одном проекте пошел на ура скрипт, а на другом пришлось колупаться в коде. Да я не заплатил, но я убил намного больше времени..

    2Max: потому что автор скрипта - талантливый программист, а не бизнесмен. Я бы на его месте давно бы продавал бы этот скрипт направо и налево. причем встроил систему лицензий и вообще не как скрипт бы делал а как СЕРВИС. Учитывая что этот сайт в гугле вылезает одним из первых по запросу "обратный звонок" - и по другим смежным вопросом - я вообще считаю что автор скрипта должен монетизировать эту тему. Я могу ему помочь - бизнес моделью и раскруткой.

    Автор отвечает регулярно всем в стиле "Как же вы меня уже достали, дармоеды. Почему вы не уважаете чужой труд и т.д. ..." Согласен, что каждый хороший труд должен соответсвенно оплачиваться. Но добрая сотня людей уже также потратила кучу времени на то чтобы разобраться в этом "полуготовом продукте". Вы ссылаетесь на то, что люди неправильно вставляют код или у них проблемы с base url и т.д. Но ПОЧЕМУ когда я напрямую сливаю аштемльку отсюда http://dedushka.org/callme/index.html (без лишнего мусора типа base url и т.п.), беру оттуда же все выполняемые файлы кроме index.php , конечно же, и (локально) получаю даже при незаполненных полях вечно зависающий на отправке скрипт...

    Дедушка, буду рад если поможете с установкой скрипта на сайт который указан в форме "Мой уютный блог". Как вы видите, он внизу сразу раскрывается, не работает кнопка его раскрытия, с чем это связано.

    если удаляю, перестает грузиться изображение на слайдере на главной.

    Автор
    Назар Токар

    Василий, отвечал на этот вопрсо уже дважды. Последняя версия jquery 1.9.0 - в ней некоторые функции удалили, поэтому слайдеры могут не работать. Пробуйте другие, более старые версии библиотеки подключать. И читайте хоть иногда чужие комментарии, полезно ведь.

    Автор
    Назар Токар

    Василий, это удалите:

    ...script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"...

    Бесконечная отправка. Javascripе еще используется, но не пойму откуда что удалить надо. Можешь помочь ? - купимонстра.рф.

    Спасибо, Дедушка.

    Да намудрил с utf8, но вроде разобрался.

    Автор
    Назар Токар

    Дмитрий, у вас кодировка сайта 1251, а у скрипта - utf8.

    Здорово все.

    Спасибо.

    Но у меня вопрос - Не могу понять, почему в строке состояния "крякозабры" с кодировкой. Такое впечатление, что UTF-8 намудрил.

    Правки внесены notepad++

    Автор
    Назар Токар

    Максим, скоро будет версия 1.7, готовьтесь :). Спасибо. Я не пользовался qiwi ни разу. Попробуй яндекс или вебмани.

    Доброго времени. На http://kolorit.pro поставил версию 1.6. На http://dveri100.ru прекрасно работает версия 1.5. Спасибо огромное за работу.

    П.С. А на кофе нельзя перевести ана qiwi?

    Автор
    Назар Токар

    внеземной, такого я не предусматривал в этой версии, но, если разбираетесь, то можно допилить.

    на сайте есть настроенный гейт, можно ли заставить ваш модуль его использовать?

    Автор
    Назар Токар

    Максим, у вас неправильно вызывается jquery. Файл библиотеки не найден:

    ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js

    Добрый день!

    Посмотрите, пожалуйста, сайт http://kolorit.pro. Нажимаю на отправку - она крутится бесконечно, но отправка происходит. Редактирование шаблона и индекса делал в notepad++.

    Завантажити ще