Jump to content

Заказ Обратного Звонка


Recommended Posts

Делаем импорт таблицы s_callbacks.sql в БД (во вложении).

 

Далее в файле api/Simpla.php примерно на 40 строке вставляем:

 

'callbacks'	 => 'Callbacks',

Далее в файле IndexView.php после:

 

function fetch()
	{

Вставить:

 

if($this->request->method('post') && $this->request->post('callback')) {
            $callback = new stdClass();
            $callback->phone        = $this->request->post('phone');
            $callback->name         = $this->request->post('name');
            $this->design->assign('callname',  $callback->name);
            $this->design->assign('callemail', $callback->phone);
            $this->design->assign('call_sent', true);
            $callback_id = $this->callbacks->add_callback($callback);
            // Отправляем email
            $this->callbacks->email_callback_admin($callback_id);
        }

Далее в api/Managers.php в  public $permissions_list = array добавить:

 

'callbacks'

 

 

Далее в файлах simpla/design/html в файлах comments.tpl и feedbacks.tpl примерно на 6 строке добавить:

 

	{if in_array('callbacks', $manager->permissions)}<li><a href="index.php?module=CallbacksAdmin">Заказ обратного звонка</a></li>{/if}

В шаблоне выводим: 

<a class="callback_link" href="#callback_form">Обратный звонок</a>

{include file='callback.tpl'}

и добавляем СSS 

/*Обратный звонок*/
.callback_title {
	display: block;
    border-bottom: solid 3px #106ac2;
    font-weight: 500;
    font-size: 18px;
    
    margin: 0 0 15px;
    color: #000;
	text-align: center;
	padding: 0 0 5px;
}
#callback_form .button {
	display: block;
    margin: 0 auto 3px;
    padding: 9px 25px 8px;
    font-weight: 500;
    font-size: 15px;
}

Вроде ничего не забыл. 

callback.zip

Link to post
Share on other sites
  • 2 weeks later...

 $(...).fancybox is not a function

Скорее всего - не подключен фансибокс, или подключен неправильно

работает только на главной странице почему-то 

Edited by Furu
Link to post
Share on other sites
  • 3 weeks later...

Чет вообще не хочет...вроде сделал по инструкции..где-то еще что-то упустили?

 

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

Link to post
Share on other sites
  • 8 months later...

Если сделать заказ обратный звонок и перезагрузить страницу отправка формы повторится(( Может ошибка где нибудь в коде?

Edited by star
Link to post
Share on other sites

Если сделать заказ обратный звонок и перезагрузить страницу отправка формы повторится(( Может ошибка где нибудь в коде?

 

нет, это уже на стороне браузера,

Link to post
Share on other sites

Это стандартная работа браузера. Если не нравится, то можно в обработчике формы добавить перезагрузку страницы подобно тому, как сделано в ProductView.php при приеме комментария.

Link to post
Share on other sites

Это стандартная работа браузера. Если не нравится, то можно в обработчике формы добавить перезагрузку страницы подобно тому, как сделано в ProductView.php при приеме комментария.

В ProductView.php перезагрузка страницы как я понимаю здесь.

				// Приберем сохраненную капчу, иначе можно отключить загрузку рисунков и постить старую
				unset($_SESSION['captcha_code']);
				header('location: '.$_SERVER['REQUEST_URI'].'#comment_'.$comment_id);

и чем это поможет если не секрет

 

 

Link to post
Share on other sites

может лучше поставить куки при открытии кнопки обратный вызов, а при отправке сообщения менять значение куки и сделать проверку. Стандартная работа браузера при этом не будет отсылать форму повторно при обновлении страницы

Link to post
Share on other sites

В ProductView.php перезагрузка страницы как я понимаю здесь.

				// Приберем сохраненную капчу, иначе можно отключить загрузку рисунков и постить старую
				unset($_SESSION['captcha_code']);
				header('location: '.$_SERVER['REQUEST_URI'].'#comment_'.$comment_id);

и чем это поможет если не секрет

 

 

 

Тем же, чем помогает не посылать повторно комментарий при перезагрузке страницы товара.

Link to post
Share on other sites
  • 10 months later...

Не хватает в /simpla/ajax/update_object.php после

    case 'comment':
    	if($simpla->managers->access('comments'))
        $result = $simpla->comments->update_comment($id, $values);
        break;

Добавить чтоб одобрить через текст на заявки

    case 'callback':
        if($simpla->managers->access('callbacks'))
        $result = $simpla->callbacks->update_callback($id, $values);
        break;
Edited by Ivan923
Link to post
Share on other sites
  • 1 month later...

 

Еще есть ошибка в CallbacksAdmin.php

44 строка        

$this->design->assign('pages_count', ceil($callbacks_count/$filter['limit']));

48 строка

$this->design->assign('callbacks_count', $callbacks_count);

 

А какая тут ошибка? Сравнивал с feedback из другого файла, вроде, всё норм.

Link to post
Share on other sites

Поставил по инструкции. После нажатия кнопки отправить телефон не появляется в базе данных даже. Где я сделал что-то не так?

 

о каких базах идет речь? прям в Mysql базу не записывается?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...