Назар Токар
Опубліковано: 18 Серпня 2013
Оновлено: 6 Травня 2017

UPD 2013-08-21: обновился архив.

Что такое Callme

В двух словах нужно объяснить: Callme — скрипт формы обратного звонка, который будет работать на любом сайте, независимо от системы управления, на которой он работает. Скрипт использует в работе jQuery, а письма администратору отправляются через php. Уведомление с просьбой звонка отправляется на почту администратору. Дополнительная настройка позволит получать уведомления в виде SMS. На всякий случай убедитесь, что функция php sendmail() на вашем хостинге работает. Впрочем, она работает почти всегда.

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

Что нового

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

Настройки указываются в файле /callme/js/config.js. Чтобы изменить поля, которые появляются в форме, укажите их названия в переменной cme_fields через запятую. Если что-то неясно, просто откройте файл с примером и скопируйте код оттуда, скрипт заработает.

Внешний вид формы

Форма заказа звонка выглядит так:

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

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

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

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

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

Условия использования

Пользоваться скриптом можно бесплатно, оставляя мой копирайт. Если хотите появления новых версий этого и других скриптов, а также технической поддержки, поддерживайте и вы меня материально: здесь все реквизиты. Тех, кто помогает больше всего, я указываю на странице благодарностей со ссылками на их проекты (ТИЦ=350, PR=4). Если необходимо стереть копирайт, переводите 7$ (210 рублей, 60 грн) и стирайте. Но лучше оставьте — чем больше пользователей, тем больше будет новых доработок. Спасибо.

Посмотреть и скачать

Посмотреть скрипт в работе:

← Тисни «Лайк», щоб читати нас у Фейсбуці
    Поширити у Фейсбуці
    Надіслати у Messenger
    Надіслати в Telegram
    Надіслати у WhatsApp
    Зберегти в Pocket

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

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

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

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

    92 коментаря

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

    Не приходят письма на почту(

    При открытии файла /callme/lib/send.php выдаёт:

    "{"result": "error","cls": "c_error","time": "","message": "Ошибка"}".

    Где в этом файле указывается отправитель?

    там есть только:

    $HTTP_HOST = parse_url ("http://".$_SERVER["HTTP_HOST"]);

    $HTTP_HOST = str_replace (array ("http://","www."), "", $HTTP_HOST["host"]);

    $from = "noreply@".$HTTP_HOST; // отправитель. Если настраиваете smtp, не забудьте указать в $from вашу почту."

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

    @Дмитрий, смотрите, там же написано: ОТПРАВИТЕЛЬ.

    Александра

    Назар, куда Вас можно отблагодарить за скрипт?

    Потерялась в навигации.

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

    @Александра, пожалуйста, здесь все реквизиты: http://dedushka.org/scripts

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

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

    Прекрасный вопрос, очень хороший.

    @Назар Токарь, а есть на него хороший ответ?

    @Александр, пишу хороший ответ. Нашел на англоязычном ресурсе. Для тех, кто тоже столкнется с этой проблемой. Оказывается RSFirewall при вставке кода типа "text/javascript" меняет его автоматически на "text/j-avascript".

    Бороться с этим можно тремя способами. Включением своего IP в белый список RSFirewall, либо добавлением в исключения по URL или компоненту, либо настройкой поведения активного сканера RSFirewall (изменением фильтра для POST или GET).

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

    @Александр, вы ведь шутите, правда?

    Здравствуйте, Назар!

    А скажите, пожалуйста, а эта форма будет работать для сайта на Django без php? Нужно будет только настроить отсылку почты через другой мезанизм?

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

    Как вы планируете отправлять почту без php?

    @Назар Токарь, питоном))).

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

    Питон разрешен, а php нет? Теоретически можно отправлять через любой серверный скрипт, который имеет rest-интерфейс.

    не получается сделать отправку на 2 адреса, емайлы указываю через запятую в виде - "mail1@mail.ru,mail2@mail.ru"
    пишет что отправлено, но на почту ничего не приходит

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

    @Александр, пробуйте Gmail, SMTP. Одно письмо доходит?

    @Назар Токарь, да, одно уходит, для отправки использую smtp.php

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

    @Александр, попробуйте продублировать функцию отправки и отправлять дважды:

    MailSmtp ($to, $title, $mess, $headers);

    MailSmtp ($to2, $title, $mess, $headers);

    Сайт стоял на простом хостинге nic.ru, обратный звонок работал, перенес на другой хостинг VPS и на почту перестали приходить сообщения, хотя все прописано по старому и ничего не изменялось. С уважением Константин.

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

    @Константин, домен меняли? Если вы меняли почту отправителя в send.php, то обновите. Если не меняли, скажите сапорту, чтобы вам включили php sendmail.

    Да домен менял и почту в send.php тоже менял,немного не понял что надо обновить? Вот я написал в тех. поддержку и получил такой ответ:- Мы протестировали работу функции php mail() на вашем сервере. Данная функция работает корректно, без каких либо ошибок.

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

    @Константин, ну, смотрите спам. Или настройкте smtp, тут ничем больше не могу помочь удаленно.

    Пытаюсь подключить скрипт. не работает. в хроме пишет Uncaught TypeError: Object # has no method 'on' core.js:33

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

    @Сергей, старый jquery

    @Назар Токарь,

    подключаю вроде последнию версию

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

    @Сергей, 1.6.4 это не последняя. Минимум 1.7 надо. Я не знаю, наверное уже сто раз написал об этом и все равно... Дичайший фейспалм например.

    Подскажите, почему после установки отображается страница
    тестирования call me?? даже после удаления из Хедэра и удаления
    папки из корня???

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

    Автор

    Это отдельная доработка. Такой функционал не предусмотрен.

    Планируется ли возможность получения уведомлений в аську?

    Автор

    @Иван, вы можете сами включить у себя веб-сообщения и в качестве почты для уведомлений указать эту почту.

    Добрый день. Пытаюсь поставить ваш скрипт себе на сайт. На локальном сервере все замечательно,а при загрузке на сервер скрипт не срабатывает,просто не появляется кнопка справа и при нажатии на нужную кнопку ничего не происходит,хотя скрипт 100% подключен к странице. Что делать?

    Автор

    @Каир, единственное что могу вам посоветовать это почитать инструкцию. Которую вы кажется не открывали.

    @Назар Токарь, я открывал инструкцию и не раз,все сделано в точности как там сказано

    Автор

    @Каир, нет, это не так

    Добрый день!

    Как обстоит дело со спамом через скрипт?
    У меня через встроенный скрипт обратного звонка идет немыслимый поток спама(((

    Автор

    @Кирилл, спама нет. Только если сообщение отправляется вручную.

    @Назар Токарь,
    Спасибо! Соориентирую своего программиста на Ваш скрипт!

    Назар, сорри за оффтопик, подскажите, как сделать так чтобы при открытии сайта на широкоформатном мониторе, грубо говоря, само тело сайта было белым, а фон за его пределами серым, ну собственно как у Вас, на этом сайте??

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

    @LEON, в css для фона указываете серый фон, а для основного блока белый фон.

    Ок, попробую, спасибо!

    В поле "Мой сайт" ссылка на рыбу сайта. Две кнопки "Закажите обратный звонок" в шапке и в подвале сайта.

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

    @LEON, обновите файлы скрипта из свежего архива. Похоже что у вас две разных версии одновременно. Подключите Callme в конце кода.

    Добрый день!

    На сайте стоит кнопка при нажатии на которую вызывается callme форма.

    Но почему-то это работает только после того как обновишь страницу, то есть нажмешь рефреш. То есть если страница просто открылась, то при нажатии на кнопку просто ничего не происходит, а вот если нажать рефреш, то после этого при нажатии на кнопку нормально вызывается форма callme. Причём проверял на нескольких компьютерах, везде одно и то же. Уточню, что открытие происходит броузером ФаерФокс.
    Подскажите пожалуйста, как можно устранить эту проблему??

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

    @LEON, где ссылка?

    @Назар Токарь, Вы ссылку на сайт получили?

    Здравствуйте! Подскажите, что не так сделал. 1. Если ничего
    не ввожу, не выдается сообщение "Заполните все поля" 2. Отправка
    висит бесконечно. Хотя письма приходят.

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

    Читайте «возможные ошибки». Для кого я посты со списком ошибок пишу?

    Здравствуйте Назар, подскажите если будет время:
    Скрипт работает по адресу callmeindex.html и при открытии index.php ошибок нет.
    Однозначно подгружается еще где-то JQ.
    Никак не могу откопать, уже несколько вариантов пробовал, все не то.
    Заранее спасибо! З.Ы. отличный скрипт!

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

    @Makc, а вопрос в чем?

    @Назар Токарь, Однозначно подгружается еще где-то JQ.
    !Никак не могу откопать где в коде подгружается!, пробовал удалять, все не то.

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

    @Makc, да, у вас дважды jq подключается. Это же WP, ручной вызов уберите. Движок сам подключает свежую версию.

    @Назар Токарь, да это fail. Сначала не появлялась форма, сразу добавил вручную. Спасибо!

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

    @Makc, и все заработало :). Успехов.

    Ввожу в форму данные, жму кнопку, но появляется Идет отправка и зависает, письмо не приходит.
    http://richplast.ru/
    Все сделал по инструкции.

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

    @rinatoptimus, дважды вызывается jq и левая кодировка.

    Спасибо! убрал из настроек php вывод Notice и все работает, чет не догадался до этого...
    С нетерпением жду диапазона времени звонка. Еще раз огромное спасибо за труды.

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

    Диапазон как раз сейчас делаю. Там же будет подсветка незаполненных полей и более высокая скорость работы.

    Добрый день. Виснет на Идет отправка… При открытии 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": "Заполните все поля"}

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

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

    @Вадим, диапазон звонка будет в одной из следующих версий, этой функции пока нет.

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

    @Вадим, у вас в настройках php выдаются все предупреждения и ошибки. Поэтому index.php выдаёт ошибку, если открыть его напрямую без передачи массива с данынми. Почитайте про Error reporting.

    @Назар Токарь, Это ладно... Вопрос в том, почему нет сообщения о том, что запрос ушел на почту. На почту все приходит корректно, но на форме постоянно висити "Идет отправка..."

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

    @Вадим, index.php передаёт ответ в json, если кроме этого в ответе будут любые другие символы, строка не будет распознаваться. Ваш php выдаёт замечания, поэтому ответ не читается. А отправка с ответом не связана, она происходит как и должна.

    Добрый вечер. Хочу в поле телефона для удобства написать +375, а покупатель сам допишет телефон. В каком файле что редактировать? Уже весь код перелопатил, так и не нашел. На форуме говорили про файл core.js, но в версии 1.9 его уже нет.

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

    @Антон, вы можете в f.php строку №49:

    echo"<span><input placeholder='".$f[$i]."' class='cme_txt' type='text' maxlength='150'/></span>";

    заменить на:

    echo"<span><input placeholder='".$f[$i]."' class='cme_txt' type='text' maxlength='150'"

    if ($f[$i] == "Телефон") { echo" value='+375' "; }

    echo"/></span>";

    @Дедушка, заменил код, в итоге callme вообще перестал отображаться. Notepad++ редактирую. Думаю в коде синтаксическая ошибка.

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

    @Антон, забыл точку с запятой в конце первой строки

    @Дедушка, поправил - callme отображается, но в поле по-прежнему нету цифр.

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

    Доброго времени суток! Хочу поблагодарить за скрипт!!! :-))
    Есть вопрос: на сайт нужно разместить только 2 поля из Вашей формы (телефон, имя) ни названия не всплывания не нужно. Форма должна быть статичная...Где найти код формы? Как это реализовать?
    Заранее спасибо.

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

    Здравчтвуйте. На форуме есть топик, как это делается.

    Добрый день! А где нибудь есть несжатый скрипт config.js хочу модифицировать скрипт, и в этом месте поправки нужно внести. Спасибо заранее

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

    Что именно хотите сделать?

    @Дедушка, Я хочу сделать на сайт 2 разные формы, одна "Заказать обратный звонок", вторая "Обратная связь" формы сами по себе одни и те же. только заголовок и кнопка, должны меняться и в форму звонка хотел бы еще время (не обязательно) в зависимости от класса ссылки куда кликаешь типа callme_viewform и online_viewform. На 1.8 много чего сделал, но думаю в 1.9 проще будет.
    Так вот конкретно я не знаю что мне нужно поменять, я делаю методов проб и ошибок т.к. не профи в js. Если можно то исходник. Ссылку оставлю и труды мои отдам бесплатно кому понадобиться)

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

    Я буду через неделю на месте и постараюсь вам сделать инструкцию, на форуме выложу. Пока с телефона мало чем смогу помочь.

    @Дедушка, будет замечательно. Благодарю!

    Добрый день! Пользователь name вчера правильно заметил, что если все писать только цифрами, то поля отправляются, а если буквами, то нет. Эта проблема возникает из-за того что при сравнении строк с числми PHP пытается преобразовать строку в число исходя из цифр, которые есть в строке. Например строка "7abc" будет преобразована в число 7, а строка "abc" будет преобразована в 0, потому что в ней нет ничего похожего на число. В файле index.php в функции getOptions() в строке 72 инструкция $value != 0 всегда будет возвращать false, если в строке $value нет цифр, а следовательно такие поля не будут отправлены, поэтому условие if ($value != 0) нужно заменить на if (strlen($value)).

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

    @Snake, всё исправил, архив обновился. Спасибо!

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

    Точно, я сразу подумал, что это может не очень красиво работать. Но оказывается, строка преобразуется.

    Спасибо!

    Приветствую.
    Как можно скачать предыдущую версию скрипта? Хочу поставить, пока наблюдаются проблемы с новой.
    P.S. скачать я имел ввиду:)

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

    @Оскар, обновили скрипт, перезакачайте

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

    Подождите до завтра.
    Старой версии уже нет :)

    Не работает в сборке joomla + vmart причина: vmart использует свой jquery а скрипт свой. Если выключать один, то перестает работать корзина, иначе перестает работать callme-скрипт.

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

    Да, и я именно для этого написал инструкцию на форуме. Чтобы не задавали таких вопросов.

    Если заполнять все поля цифрами - то приходят все данные, а если буквами - то ничего не приходит. :(

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

    Интересное наблюдение! Сегодня же ночью буду копаться, чтобы выяснить, в чём дело :)

    Да, заполняли все поля