Хорошего понемногу :). В предыдущей версии CallMe можно было тыкать 20 раз «отправить» и реально 20 раз администратор бы получил одно и то же уведомление. В новой версии скрипта мы с вами, дорогие друзья, позволим не менее дорогому клиенту всего один раз отправить нам запрос на обратный звонок.

callme

Алгоритм прост: после удачной отправки уведомления мы сохраним информацию об этом в браузере пользователя и при повторной попытке выведем какое-то смешное сообщение с угрозой. Я написал «Спасибо, хватит и одного раза», но уверен, что вы придумаете что-нибудь смешное.

Для того, чтобы все работало, мы дополним jQuery расширением local.storage. С его помощью мы будем записывать, а потом читать данные об отправке. Поэтому нужно будет также немного поменять код установки скрипта, добавив одну строку для вызова LS. Кроме того теперь обмен данными производится при помощи jSon, что никак визуально не поменяло работу, но теперь результат генерируется самим js, а не в php. Что, как по мне, более правильно с точки зрения логики.

Помня о проблемах с установкой, уточняю: если у вас уже подключена jQuery, то повторно её подключать не надо. Аналогичное касается и local storage. Удаляем эти строки в таком случае. Как обычно, рабочий пример скрипта смотрите на Мебельном.

Чтобы подключить код, прописываете в темплейт код, который надо взять из index.html.

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

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

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

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

Я видел, что на паре сайтов добавились «комментарии» кроме имени  номера и телефона. Я думаю, что это лишнее, хотя могу и ошибаться, какие у кого мысли по этому поводу? Также можно сделать уведомление по смс о заказе звонка, но это уже будет платно и не знаю, есть ли такая необходимость. Обсуждаем.

Кстати, жду ваших пожеланий и впечатлений от работы со скриптом. Пишите сюда или на почту. И если находите скрипт удобным можете сказать материальное спасибо в виде перевода по вебмани, подробности на странице «Обо мне».

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

UPD 2012-02-29: поправили строку с подключением callme надо вставлять после jquery и storage. Спасибо Евгению.

Коменти

Виталий

У вас сейчас со страницы любой предыдущей версии переходит на демо последней версии.

Дедушка

Виталий, ссылка на закрытие окна формы ссылается на демо, при клике он обрабатывается скриптом и форма закрывается, а пользователь никуда не переходит. Значит, скрипт не обрабатывает у вас клик и ссылка работает как обычная ссылка.

Нужно убедиться, что скрипт подключен по правильному адресу и что в кэше не старая его версия. Почистите кэш и проверьте пути.

Garastard

Комментарии нужны, чтобы клиент написал “время звонка”…
Например хочу, чтобы позвонили с 15:00 – 16:00

Я список вываливающийся с временем добавил
с xx:xx до xx:xx

удобнее для клиента

Garastard

Дедуля, спасибо))

Дедушка

Алексей, куда угодно после открывающегося body. Обратите внимание на новую версию скрипта.

Алексей

ребят, подскажите пожалуйста куда именно прописывать код, в хэдэр, в индекс, куда именно?

Михаил

Огромное спасибо!
Очень достойный скрипт!
Я искал именно, чтото подобное.
Всё заработало с первого раза. И работает тип-топ:)

Единственное что я сделал, так это отключил “проверку на отправку”. Мне кажется это очень не удобно, когда покупатель не может отослать пару раз сообщение.
http://babyprix.ru/postelka-003.html

Дмитрий

Эта проблема возникает, так как дочерний элемент контейнера HTML содержит сценарий, который пытается изменить родительский элемент контейнера дочернего контейнера. Он пытается изменить родительский элемент контейнера с помощьюinnerHTMLметода илиappendChildметод.

, Это может происходить, еслиDIVэлемент является дочерним контейнером вBODYэлемент иSCRIPTблока вDIVэлемент пытается изменитьBODYэлемент, являющийся родительским контейнером дляDIVэлемент.

Выставил код перед и всё стало ОК

Артём

Всё заработало само))))

Артём

Всё установил, но зависает на надписи Отправка…
И ничего не происходит((
http://alla.16mb.com

Дмитрий

Доброго дня!

Тут такое дело, установил, работает, нравится, спасибо, но сайт перестал открываться в 5,6,7,8 версии IE. Жалуется на ошибку KB927917
Пишут что это из за русских комментов в .js, но убрав их ничего не поменялось.
IE глючный и это факт, но покупатели об этом не думают.

сайт _mpemebel.ru

Настя

А теперь кнопка заработала, но дерево с товарами раскладывается на всю страницу и плюсики исчезают apexlab.ru

Настя

Скажите, что не так, я изменила в файле индекc адрес эл. почты (в месте to и from)? распаковала ее в callme, вставила код на странице, кнопка есть, даже на вид работает, поле отправки пишет “одного раза хватит, спасибо”, но мне на почту не отправляет…

Ирина

Подскажите “истинной блондинке” что я делаю не так?
1. Загрузила файлы в созданную папку callme;
2. загрузила в index код кнопки (скопировала с этой страницы).
3. добавила callme.css в папку с дизайном.
В итоге кнопка есть, но не работает.
Да, кстати, адреса почти ввела свои.
мой магазин: http://www.oriflamebutovo.ru

Евгений

МШ, в html-скрипте, которые добавляется на страницу поищите текст “+7″ и замените на нужное.

Если подключена библиотека MooTools (например, при использовании Phoca Gallery), то могут возникнуть проблемы. Например, у меня не вызывались модальные окна с изображениями, они открывались тупо как обычные картинки вместо текущего документа. Как решить?
После подключения jquery.min.js прописываем:
{script type=”text/javascript”}jQuery.noConflict();{/script}
(здесь заменить фигурные скобки на угловые), после чего меняем в callme.js все знаки $ на jQuery.
p.s. Подозреваю, что в jquery.storage.js тоже нужно сделать такую замену, я её не использую вообще, заменил на куки (ИМХО, так лучше, иначе человек никогда не сможет заказать звонок повторно, даже через месяц).

Мою модификацию качайте тут: http://content.wuala.com/contents/jin_x/Public/scripts/callme_modified.zip?dl=1
Основной код в _maincode.html и _maincode_nc.html

Изменения:
* Вместо storage используются куки с возможностью повторной отправки через час
* Добавлено поле “Комментарии (необязательно)”, удалён текст “+7”, т.к. человек может захотеть указать домашний телефон.
* Вариант _maincode_nc.html + callme_nc.js содержат код, не конфликтующий с MooTools и т.п. библиотеками.
* Текст кнопки написан болдом полностью.
* Изменены длины полей и немного размер формы.
* Небольшие модификации сообщений.

МШ

Подскажите пожалуйста, а как сменить +7 на +8 ? Спасибо

Евгений

Блин…
Короче, загрузка callme.js должна быть после jquery и storage, а не первой строкой. В общем-то, логично :)

Евгений

Нашёл косяк!

должен стоять после:

Дедушка, подправьте в шапке ;)

Евгений

Отправка СМС хороша тем, что мыло люди могут проверять раз в день, а СМС приходит сразу. С другой стороны, можно завести специальный e-mail и настроить на смартфоне моментальное получение сообщений.

Про повод согласен, но “Комментарий” (необязательный) лучше пусть будет. Например, человек хочет написать “звоните после 20 часов” – это важно, а поля нет. Он может отказаться от отправки.

На сайте вроде всё правильно сделал, почему-то ничего не выходит. Пробовал на пустой странице сделать (с одной строкой текста) – то же самое.

Никита

Скрипт так и не работает, неделю с ним воевал, и все бестолку. Загляните пожалуйста http://купелибочки.рф

Дедушка

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

Евгений

Установил скрипт на http://mandarish.ru/index.php (пока работает только по этой ссылке – для теста).
В итоге кнопка появляется, при наведении цвета не меняет и при клике эффект нулевой (смотрю на Опере, на других тоже не пашет). Консоль ошибок выдаёт:
Inline script thread
Uncaught exception: TypeError: ‘$(document).ready’ is not a function
Error thrown at line 43, column 0 in http://mandarish.ru/callme/callme.js:
$(document).ready(function(){

Ещё пара замечаний: ИМХО, не есть хорошо, что кнопка называется “Заказать бесплатный звонок”, а форма – “Заказать обратный звонок”. И что “заказать бесплатный” выделено жирным, а “звонок” – нет. Стрёмно смотрится :). Лучше всё сделать жирным.

По поводу SMS – очень хорошая идея. Удобно! Можно сделать переключатель где-нибудь в недрах: SMS/e-mail.

По поводу поля “комментарий” – хорошая идея. Я бы даже написал: “Повод:”, – а далее выпадающий список с несколькими вариантами, типа “Вопрос по товару/услуге”, “Вопрос об оплате и доставке”, “Проблема на сайте”, “Другой”.

Заранее спасибо.

Дедушка

Евгений: отправка в смс платная, на мыло нет. Если возиться с подключением сервисов типа smsimple, это будет не так просто, как кажется, и я не думаю, что на это будет большой спрос.

Далее, повод заказать звонок. Повод — хочу, чтобы мне перезвонили :). Зачем усложнять форму? По себе сужу: чем больше полей надо заполнить, тем меньше шансов, что я буду это делать добровольно.

С ошибкой буду разбираться.

Андрей

Дедуш, это я заполнил)

//адрес почты для отправки уведомления
//несколько ящиков перечисляются через запятую
$to = “[email protected]”;
//адрес, от которого придёт уведомление
$from = “[email protected]”;

Сам скрипт работает, при нажатии “перезвонить мне” пишет “отправлено”

но не приходят письма) может с локалхоста не работает?

Никита

На время убирал, сейчас снова поставил. Загляните еще раз пожалуйста.

Дедушка

Дмитрий, у вас файлов скрипта нет на сайте. Пруф.

Никита, у вас кода скрипта нету.

Андрей…

Все работает, но письма не приходят.

Я бы сказал, что ничего не работает :). Для настройки открывайте в текстовом редакторе index.php и указывайте свою почту. В комментариях написано что и где.

Андрей

Не пойму насчет настройки от кого и кому, там где указывать мою почту нужно. Все работает, но письма не приходят. Как происходит отправка уведомления? Не нужно указывать данные к почтовому аккаунту? Спасибо.

Дмитрий

Добрый день.
Установи, и … заветной кнопки нема ((
doors.nahodov.ru

Никита

Поставил новую версию, теперь вообще даже не выдвигается. Дедушка, может поможете за умеренную плату?

Никтита

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

Дедушка

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

wTFuck

Сергей, хороший самопис) вот бы такой прикрутить к фильтру движка CS-Cart (подбор цены).

У меня был такой же трабл, менял порядок и всё работает + внутренние.
Посмотри мб кроме главной в шаблоне других страниц что-то добавляется лишнее…

Юсуф

Добрый день.

Сайт http://www.idental.com.ua/

1) У меня при отправке постоянно мигает значек отправки, но сообщения не отправляет.
Установил все правильно, несколько раз проверил.

2) На страницах товаров, в левом блоке появляется окошко поиска по параметрам, и этот поиск не работает.

Вероятнее всего проблема в конфликте Jquery, т.к. когда из кода удаляю строку подключения

модуль поиска товаров по параметрам начинает работать.

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

Сергей

На главной заработало, а на внутренних – нет:(

Сергей

wTFuck, движок самописный:)

Порядок подключения поменял, но не работает все равно.

wTFuck

т.к. код нельзя вставлять, вот порядок:

jquery.min.js
callme.js
jquery.storage.js

wTFuck

Сергей, поставь подключение скриптов в таком порядке и всё будет работать.

И еще вопрос, на твоем сайте что за движок стоит с таким фильтром продукции?

wTFuck

Дедушка, подскажите как убрать повторную отправку заказа звонка (а точнее проверку), т.к. когда человек например вчера заказывал его и хочет еще сегодня с тем же IP заказать – ему пишет одного раза хватит. А это думаю никому не нужно, если человек не может повторно заказать.

Игорь

Здравствуйте, установил Ваш скрипт на свой интернет магазин, установилось все хорошо, письма на почту приходят, но отправка … идет бесконечно и не выдает сообщение отправлено. Помогите пожалуйста. Спасибо http://www.megabox.if.ua/

Дедушка

Игорь, почитайте комменты, все сделали как написано в инструкции?

Сергей

Подключил jquery-1.7.1 – не помогло

Дедушка

Сергей:

jQuery JavaScript Library v1.4.2

Поставьте свежую jquery.

Сергей

http://www.maman.com.ua/ – нажимаю “Перезвоните мне” и картинка “Отправка” зависает.
Сама отправка не происходит.

Как лечить?

Naly

Да, я скрипт убираю, когда не могу ничего от него добиться. А когда ставлю – появляется кнопка, сначала выезжала, но ничего не отправляла, и была под всем контентом и картинками сайта, а потом не стала выезжать…

Naly

Дедушкааааа! Ну подскажи, уже неделю мучаюсь, не могу поставить… Как понять фразу “повторный вызов jQuery”? Где это посмотреть, и как сделать так. чтобы он не был повторным? Как вызвать эту jQuery (вообще)? Блин, я сайт быстрее сделала, чем этот обратный звонок ставлю (((

Дедушка

Naly, повторный вызов это если дважды в коде встречается запрос библиотеки jquery, посмотрите в html. Просто удалите любой из них.

AndryuKara

Уважаемый дедушка, если будете дорабатывать скрипт… Заметил странное отображение на iPad картинки “заказать бесплатный звонок”. Она сдвинута от правого края, пикселов на 100… Проверял и на своем сайте и на вашем мебельном… Спасибо

Дедушка

Андрюкара, спасибо, проверим.

Дедушка

Naly, у вас на сайте нету кода скрипта.

Naly

Милый Дедушка! Мне очень нравится ваш скрипт, но не могу понять почему не идет отправка на почту. Мигают квадратики, пишет: Отправка и все… и так до бесконечности ((( Помогите: http://balkonyokna.ru/
Отправки через sendmail нету. Это можно как-то исправить. чтобы уведомления отправлялись через php mail????

oleg60

Понял, ждем-с.

slalf

Помогите пожалуйста: не приходят сообщения на e-mail, что я не так делаю? (alf.pl.ua) Заранее благодарю.
С ув.

Дедушка

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

oleg^0

Здравствуйте.
Бьюсь с callme уже неделю. Не работает и все.
Находится здесь: http://www.extremegroup.ru/rus/information/
Причем в разных браузерах по разному:
в IE страница зависает и пишет ошибку
Сведения об ошибке на веб-странице

HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
Строка: 0
Символ: 0
Код: 0

В CHROM -е начинае работать, но после отправки данных выводит сообщение в краказябрах и тоже зависает.

Кодировка сайта cp1251. В index поменял. Jquery больше нигде вроде не используетя – сайт старый.

Дмитрий

Очень странное поведение, через минуту шаманства всё вернулось к старой ошибке – callme.js:6Uncaught TypeError: Cannot call method ‘appendChild’ of null

Дмитрий

Поставит эту версию, та же самая ошибка, методом тыка, понял, что она пропадает, только после полной загрузки DOM, я просто обернул её в document.ready и кнопочка стала активной, но возникла другая ошибка – в самом jquery.min… Вот она –
Uncaught TypeError: Object # has no method ‘swing’

Не знаю, почему у всех так легко встаёт :D а у меня нет :DD

slalf

Дедушка добрый день. Такая проблема: не приходят сообщения на t-mail. Вчем может быть проблема? (www.alf.pl.ua)
С ув.

Дедушка

Антон, итак я вижу, что на стартовой скрипт работает, на остальных скрипт не установлен. Куда тогда смотреть? :). Не знаю, у кого в чём дело, но почти во всех случаях чтение комментариев к посту помогало решить все затруднения в работе.

Это:
а) разные кодировки скрипта и сайта
б) неправильная установка html-кода
в) закачаны не все файлы

Я вам желаю успеха в установке, ну или же найти скрипт, который сам всё за вас сделает :)

Антон

Хе… Я подумал, что если у разных людей с разными сайтами такая проблема, то дело в скрипте, а не сайте. По аналогии, что если уже третий муж бьет по морде, то дело не в муже, а в морде :-)
Сайт http://vglaz.biz , скрипт хотел совсем убрать, но потом оставил только на главной – там где работает.

Дедушка

Евгений, без ссылки на сайт вам никто не сможет помочь.

Антон, аналогично, экстрасенсы сегодня выходные :).

Антон

Скрипт отличный, но проблема и правда есть. Работает только на главной, с остальных старниц кнопка не активна. =(
Автор может решить проблему? А то работы проделано много, а желаемой пользы нет, и, как я вижу, не только у меня.

Евгений

Да Закачал из Вашей ссылки снова. Такая же ошибка. И зеленая кнопка “Заказать звонок” не активна

Дедушка

Евгений, у вас на первый взгляд все правильно. Вы поставили последнюю версию из этого архива?

Евгений

вот сайт acuto-pro.com

Дедушка

Евгений, а дайте ссылку на страницу, где он установлен.

Евгений

Здравствуйте.
Файл callme.js выдает такую ошибку. Что может быть? http://s013.radikal.ru/i325/1112/8f/4556be69b501.jpg

Дедушка

Dimon, вот я сейчас вижу, то со всеx страниц происxодит отправка у вас, все работает.

Dimon

А вот сейчас при попытке отправить сообщение из раздела Новости, выскочило “Ajax error: error, undefined”…

Dimon

Дедушка, спасибо за подсказку про метрику, вставил и право пару раз…
Условие просто, если я захожу на сайт и перехожу сразу например в раздел Новости или Интернет-магазин и пытаюсь оттуда отправить просьбу перезвонить, происходит “подвисание” формы. Т.е. форма отправляет сообщение только с главной страницы. После того, как я отправил с главной страницы сайта просьбу, перехожу на любую др. страницу (например Новости), при попытке отправки скрипт ведёт себя адекватно, пишет, отправка невозможна, т.к. действие уже совершено (дословно).., но если попробовать очистить историю, кэш и настройки сайта, что позволит попробовать отправить сообщение вновь и попробовать отправить сообщение с любой страницы кроме главной, форма виснет.

Дедушка

Dimon, а как вы делаете условие «если с главной страницы сообщение не отправлялось»? Оно же уже раз отправилось и у вас соxранилась запись в браузере об отправке. Всё, больше сообщение отправляться не будет. В чем собственно вопрос?

Да и кстати, зачем вы дважды установили яндекс.метрику на сайт?

Dimon

Здравствуйте! Установил скрипт на сайт gibeon.ru, строку убрал. На главной странице работает (отправляет сообщение реально), при переходе на другие страницы, при условии, если отправлялось сообщение с главной страницы, пишет -Вы уже отправляли сообщение…, при условии, если с главной страницы сообщение не отправлялось, горит отправка, бегают зелёные индикаторы и ничего не происходит… сайт работает под управлением hostcms..

Евгений

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

Дедушка

Алексей, ссылку в студию.

Алексей

Не работает скрипт. При нажатии ничего не происходит. Браузер пишет, что на странице ошибка.

Burt

Ни каких действий по поводу отсылки об обратной звонке не производили еще? :)
Есть хороший сервис avisosms.ru, имеется API и другие “плюшки”.

Дедушка

Burt, есть, например, smsimple с ценами на 30% ниже с API. Можно сделать отправку смс при заказе, только нужно ли?

manachboriska

Привет
Спасибо за классный скрипт. Заметил, что популярный AdBlock вырезает картинку-ссылку button.png, основываясь на имени. Поэтому можете переименовать ее на что-то другое, иначе многие просто не увидят предложения заказать обратный звонок.
И еще вопрос, нельзя ли сделать так, чтобы форма с полями сворачивалась не только по клику на картинку, но и по клику в любое место экрана вне формы.

Дедушка

Хм, эдблок так себя не вел раньше, принято. По поводу клика в любом месте подумаем.

Дедушка

Владислав, чаще всего повторный вызов jquery. Проверьте, правильно ли установлено.

Владислав

Спасибо за скрипт, но данная версия отказывается работать. Предыдущая, 1.3 работает без проблем. В данном же варианте, при нажатие на “заказать бесплатный звонок” ничего не происходит. Где может быть конфликт?

Дедушка

Accum, вопрос уже решили. Проблема с повторным вызовом jQuery.

Accum

Привет!
Конфликтуют скрипты для отображения картинок и callme. В результате скрипт плавного увеличения картинок не отрабатывается, соответственно, картинки при клике на них просто открываются в новом окне. Вот здесь например http://silver2silver.ru/CN6781-Cep-serebrjanaja-s-cirkoniem.html

HELP!