Перейти к содержимому


Фото
- - - - -

При оформлении заказа нет подтверждения


  • Чтобы отвечать, сперва войдите на форум
10 ответов в теме

#1 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 09.02.2016 - 15:05

Добрый день !
 
при нажатии на кнопки оформить заказ не пишет спасибо ваш заказ оформлен, в чем может быть проблема ? 
За ранее всем спасибо ! Оформление на одной странице.
 
сама страница http://deltagsm.ru/cart

Изменено: Hero, 09.02.2016 - 15:06


#2 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 09.02.2016 - 15:22

что-то у вас не то с оформлением. корзина очищается, вам письмо о новом заказе приходит?

 

в view/CartView.php есть строки?

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


#3 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 09.02.2016 - 15:29

да вы сделали 2 заказа



#4 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 09.02.2016 - 15:31

[acronym='']
/**
* 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->payment_method_id = $this->request->post('payment_method_id', 'integer');
$order = new stdClass;
$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');
$order->ip = $_SERVER['REMOTE_ADDR'];

$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);


// Скидка
$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');
}


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);

// Очищаем корзину (сессию)
$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);
// Варианты оплаты
$payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
$this->design->assign('payment_methods', $payment_methods);

// Данные пользователя
if($this->user)
{
$last_order = $this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1));
$last_order = reset($last_order);
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');
}

}[/acronym]

да вы сделали 2 заказа

 
да вы сделали 2 заказа
 



#5 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 09.02.2016 - 16:35

Как исправить ?



#6 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 09.02.2016 - 16:40

первое что вижу, эти два поля

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

должны быть ПОСЛЕ

$order = new stdClass;

а не перед, как у вас.



#7 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 09.02.2016 - 17:22

поменял но все ровно все по прежнему ((



#8 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 09.02.2016 - 20:35

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



#9 Hero

Hero
  • Пользователь
  • 29 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 10.02.2016 - 19:14

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

https://cloud.mail.r.../5eEC/T9Ke47vB3

 

тут нужные файлы. и еще поиск перестал работать, при наведении на поиск страница обновляется (((



#10 Sharfik

Sharfik
  • Пользователь
  • 51 сообщений

Опубликовано 28.03.2016 - 18:50

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

 

Насчет поиска: если страница недогрузилать, но уже отображается и нажать на поиск - отправляет на главную.

 

У вас случайно не таймвеб? он последняя время ужасно работает, может быть в нем проблема.


Изменено: Sharfik, 28.03.2016 - 18:51


#11 Манифест

Манифест
  • Пользователь
  • 61 сообщений
  • Заказчик, Пользователь
  • Откуда:Волгоград

Опубликовано 21.02.2019 - 08:20

первое что вижу, эти два поля

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

должны быть ПОСЛЕ

$order = new stdClass;

а не перед, как у вас.

хм....у меня вот этой строки $order->payment_method_id = $this->request->post('payment_method_id', 'integer'); вообще нет






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых