Перейти к содержанию
Официальный форум поддержки Simpla

Оформление заказа пользователь остается на тойже странице


Рекомендуемые сообщения

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

Помогите решить эту проблему.

Ссылка на сообщение
Поделиться на другие сайты

Симпла стандартная? Какой версии?

Похоже, кто-то лазил в коде и поломал переадресацию на страницу заказа.

Ссылка на сообщение
Поделиться на другие сайты

Симпла стандартная? Какой версии?

Похоже, кто-то лазил в коде и поломал переадресацию на страницу заказа.

 

По стандарту ее нету) 

Походу как.

Ссылка на сообщение
Поделиться на другие сайты

Вчитайтесь в суть вопроса сами.

Покупатель нажимает на "В корзину" товар летит в корзину, покупатель остается на месте и не понимает что товар уже в корзине. Автор просит решения, не так ли?

Ссылка на сообщение
Поделиться на другие сайты

Дело не в корзине, все происходит после завершения оформления заказа, когда покупатель нажимает кнопку "Оформить заказ".

А где можно посмотреть корректность кода перехода страниц?

Ссылка на сообщение
Поделиться на другие сайты

Проверил, все так и есть. В чем интересно тогда дело?

 

 

view/CartView.php,  должно быть примерно так:

 

	    	        // Очищаем корзину (сессию)
			$this->cart->empty_cart();
	
			// Перенаправляем на страницу заказа
			header('Location: '.$this->config->root_url.'/order/'.$order->url);

Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

Покажите содержимое файла view/CartView.php.

<?PHP

 

/**

 * Simpla CMS

 *

 * @copyright     2009 Denis Pikusov

 * @link         http://simp.la

 * @author         Denis Pikusov

 *

 * Корзина покупок

 * Этот класс использует шаблон cart.tpl

 *

 */

 

require_once('View.php');

 

class CartView extends View

{

  //////////////////////////////////////////

  // Изменения товаров в корзине

  //////////////////////////////////////////

  public function __construct()

  {

    parent::__construct();

 

    // Если передан id варианта, добавим его в корзину

    if($variant_id = $this->request->get('variant', 'integer'))

    {

        $this->cart->add_item($variant_id, $this->request->get('amount', 'integer'));

        header('location: '.$this->config->root_url.'/cart/');

        

    }

 

    // Удаление товара из корзины

    if($delete_variant_id = intval($this->request->get('delete_variant')))

    {

      $this->cart->delete_item($delete_variant_id);

      if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)

            header('location: '.$this->config->root_url.'/cart/');

    }

    

    // Если нажали оформить заказ

    if(isset($_POST['checkout']))

    {

    

        $order->delivery_id = $this->request->post('delivery_id', 'integer');

        $order->name        = $this->request->post('name');

        $order->email       = $this->request->post('email');

        $order->address     = $this->request->post('address');

        $order->phone       = $this->request->post('phone');

        $order->comment     = $this->request->post('comment');

        $smsnotify             = $this->request->post('smsnotify');

 

 

        $this->design->assign('delivery_id', $order->delivery_id);

        $this->design->assign('name', $order->name);

        $this->design->assign('email', $order->email);

        $this->design->assign('phone', $order->phone);

        $this->design->assign('address', $order->address);

 

        $captcha_code =  $this->request->post('captcha_code', 'string');

 

        // Скидка

        $cart = $this->cart->get_cart();

        $order->discount = $cart->discount;

        

        if($cart->coupon)

        {

            $order->coupon_discount = $cart->coupon_discount;

            $order->coupon_code = $cart->coupon->code;

        }

        //

        

        if(!empty($this->user->id))

            $order->user_id = $this->user->id;

        

        if(empty($order->name))

        {

            $this->design->assign('error', 'empty_name');

        }

        elseif(empty($order->email))

        {

            $this->design->assign('error', 'empty_email');

        }

        elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))

        {

            $this->design->assign('error', 'captcha');

        }

        else

        {

            // Добавляем заказ в базу

            $order_id = $this->orders->add_order($order);

            $_SESSION['order_id'] = $order_id;

            

            // Если использовали купон, увеличим количество его использований

            if($cart->coupon)

                $this->coupons->update_coupon($cart->coupon->id, array('usages'=>$cart->coupon->usages+1));

            

            // Добавляем товары к заказу

            foreach($this->request->post('amounts') as $variant_id=>$amount)

            {

                $this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount)));

            }

            $order = $this->orders->get_order($order_id);

            

            // Стоимость доставки

            $delivery = $this->delivery->get_delivery($order->delivery_id);

            if(!empty($delivery) && $delivery->free_from > $order->total_price)

            {

                $this->orders->update_order($order->id, array('delivery_price'=>$delivery->price, 'separate_delivery'=>$delivery->separate_payment));

            }

            

            // Отправляем письмо пользователю

            $this->notify->email_order_user($order->id);

            

            // Отправляем письмо администратору

            $this->notify->email_order_admin($order->id);

 

            // Отправка смс уведомления пользователю если он этого запросил

            if ($smsnotify == 'send')

            $this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят. На сумму '.$order->total_price.' руб. Спасибо за покупку!');

            // Отправка смс уведомления администратору о поступившем заказе

            $this->smssend->send('000000000', 'На сайт поступил заказ №'.$order->id.' на сумму '.$order->total_price.' руб.');

    

        

            // Очищаем корзину (сессию)

            $this->cart->empty_cart();

                        

            // Перенаправляем на страницу заказа

            header('Location: '.$this->config->root_url.'/order/'.$order->url);

        }

    }   

    else

    {

 

        // Если нам запостили amounts, обновляем их

        if($amounts = $this->request->post('amounts'))

        {

            foreach($amounts as $variant_id=>$amount)

            {

                $this->cart->update_item($variant_id, $amount);         

            }

 

            $coupon_code = trim($this->request->post('coupon_code', 'string'));

            if(empty($coupon_code))

            {

                $this->cart->apply_coupon('');

                header('location: '.$this->config->root_url.'/cart/');                

            }

            else

            {

                $coupon = $this->coupons->get_coupon((string)$coupon_code);

 

                if(empty($coupon) || !$coupon->valid)

                {

                    $this->cart->apply_coupon($coupon_code);

                    $this->design->assign('coupon_error', 'invalid');

                }

                else

                {

                    $this->cart->apply_coupon($coupon_code);

                    header('location: '.$this->config->root_url.'/cart/');

                }

            }

        }

        

    }

              

  }

 

 

    //////////////////////////////////////////

    // Основная функция

    //////////////////////////////////////////

    function fetch()

    {  

        // Способы доставки

        $deliveries = $this->delivery->get_deliveries(array('enabled'=>1));

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

        

        // Данные пользователя

        if($this->user)

        {

            $last_order = reset($this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)));

            if($last_order)

            {

                $this->design->assign('name', $last_order->name);

                $this->design->assign('email', $last_order->email);

                $this->design->assign('phone', $last_order->phone);

                $this->design->assign('address', $last_order->address);

            }

            else

            {

                $this->design->assign('name', $this->user->name);

                $this->design->assign('email', $this->user->email);            

            }

        }

        

        // Если существуют валидные купоны, нужно вывести инпут для купона

        if($this->coupons->count_coupons(array('valid'=>1))>0)

            $this->design->assign('coupon_request', true);

 

        // Выводим корзину

        return $this->design->fetch('cart.tpl');

    }

    

}

Ссылка на сообщение
Поделиться на другие сайты
  • 3 года спустя...

есть новости по проблеме? не отрабатывается редирект на страницу order/

подскажите в каком файле поправить код чтобы отрабатывался редирект на /order/0ca14e2f4a89cf4d917fadb877be67c0

Ссылка на сообщение
Поделиться на другие сайты

Какие вам нужны новости?

У меня новости такие - сделал более 300 сайтов - все работает ОТЛИЧНО :)

А что вы там налазили немытыми руками - кто это может знать...

Нет универсального способа ВСЕ ПОЧИНИТЬ.

Одна из известных мне проблем - неверная кодировка файлов.

Ссылка на сообщение
Поделиться на другие сайты

Какие вам нужны новости?

У меня новости такие - сделал более 300 сайтов - все работает ОТЛИЧНО :)

А что вы там налазили немытыми руками - кто это может знать...

Нет универсального способа ВСЕ ПОЧИНИТЬ.

Одна из известных мне проблем - неверная кодировка файлов.

6554813.jpg
Ссылка на сообщение
Поделиться на другие сайты

Какие вам нужны новости?

У меня новости такие - сделал более 300 сайтов - все работает ОТЛИЧНО :)

А что вы там налазили немытыми руками - кто это может знать...

Нет универсального способа ВСЕ ПОЧИНИТЬ.

Одна из известных мне проблем - неверная кодировка файлов.

 

товарищ недавно чинил такую проблему на другом сайте мне, говорит что при заказе передается переменная, и по ней в шаблоне идет редирект.

 

Какие вам нужны новости?

У меня новости такие - сделал более 300 сайтов - все работает ОТЛИЧНО :)

А что вы там налазили немытыми руками - кто это может знать...

Нет универсального способа ВСЕ ПОЧИНИТЬ.

Одна из известных мне проблем - неверная кодировка файлов.

 

не лазили, после переноса такая фигня, хостинг сменил

Ссылка на сообщение
Поделиться на другие сайты

товарищ недавно чинил такую проблему на другом сайте мне, говорит что при заказе передается переменная, и по ней в шаблоне идет редирект.

 

 

 

не лазили, после переноса такая фигня, хостинг сменил

 

при заказе никакая переменная для редиректа там с шаблона не передается.

При добавлении заказа ему формируется хеш-ключ (md5). В следствии при успешном добавлении заказа по его иду берется этот ключ и формируется редирект на order/хеш-ключ

 

обратитесь тогда к товарищу. Пусть поможет 

 

там всего 2 варианта проблемы может быть

либо не добавляется заказ либо выскакивает какой то notice что мешает редиректу 

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Вы бы если мне подсказали где проблему самостоятельно найти я был бы признателен

 

 

13 пост

Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Вы бы если мне подсказали где проблему самостоятельно найти я был бы признателен

 

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

в итоге получаете такие же ответы. Если хотите - в личку. За пиво помогу решить проблему

Ссылка на сообщение
Поделиться на другие сайты

Как-то я однажды поставил true 

smarty_caching = false;

и столкнулся с такой же проблемой. 

smarty_compile_check = true;
smarty_caching = false;
smarty_cache_lifetime = 0;
smarty_debugging = false;
smarty_html_minify = false;

с тех пор этой строчки нет ни в одном проекте

Изменено пользователем sergeevizh
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...