Всем здрасте
Такой момент, есть магазин. Клиент сделал заказ - накидал в корзину товара и перешел оформлять. И во тут то самое интересное...
ajax передал данные из формы, сформировал массив для заполнения заказа, но сам заказ (запись в таблице) осталась без изменения
после отправил сообщение (smtp пришел новый заказ) и вернул результат true
а на почту пришла инфа - заказ новый - номер заказ null, цена 0, клиент - данные из формы...
Причем при оформлении заказа можно сразу зарегистрироваться и глядя по таблице в бд регистрация прошла успешно, запись есть и дата регистрации совпадает с датой оформления заказа...
Заказ не первый, а уже 2314-й (по id)...
Но такой глюк первый
сам код оформления
<?php
$name = $request->get('name');
$email = $request->get('email');
$phone = $request->get('phone');
$reg = (int)$request->get('registration');
$city = $request->get('city');
$street = $request->get('street');
$home = $request->get('home');
$housing = $request->get('housing');
$apartment = $request->get('apartment');
$comment = $request->get('message');
// если клиент хочет зарегистрироватся
if($reg==1)
{
$password = $request->get('password');
$userModel = new User();
$resEmail = $userModel->getClientEmail($email);
if(isset($resEmail['email']))// а такой емаил есть в бд...
{
return json_encode(['result'=>false]);
}
$dataUserUpdate = [
'name' => $name,
'login' => $email,
'email' => $email,
'phone' => $phone,
'password' => bcrypt($password),
'active' => 1,
'created_at'=>date('Y-m-d H:i:s')
];
$userModel->updateClient($_SESSION['client_id'], $dataUserUpdate);
$clAdModel = new ClientsAdress();
$dataAdres = [
'client_id'=>$_SESSION['client_id'],
'main'=>1,
'city'=>$city,
'street'=>$street,
'home'=>$home,
'housing'=>$housing,
'apartment'=>$apartment,
];
$clAdModel->addAdress($dataAdres);
$message = "Здравствуйте,
Ваши учетные данные для доступа к сайту
Логин: {$email}
Пароль: {$password}
---
С Уважением";
Mailsend::sendEmail('Ваш доступ к сайту', $message, $email);
}
$other = 'Оплата: ' . $request->get('payment');
$other .= "\nДоставка: ";
// какая доставка выбрана
$delivery = (int)$request->get('delivery');
if($delivery == 2)
{
$other .= 'Курьерская доставка по СПб';
}
else if($delivery == 3)
{
$other .= 'Самовывоз';
}
else
{
$other .= 'Доставка по Ленобласти и РФ';
}
$message = $other . "\nКомментарий: ".$comment;
$adress = 'Город: '.$city."\n".
'Улица: '.$street."\n".
'Дом: '.$home."\n".
'Корпус: '.$housing."\n".
'Квартира: '.$apartment;
// получаем список продуктов из корзины через сессию
$cartModel = new Cart();
$prodts = $cartModel->getAllCart($_SESSION['client_id']);
$total = 0;
$messageMail = '';
$prodmes2 = '';
//формируем стоимость и скидки а также месседж в почту
foreach($prodts as $row)
{
$total += $row->price * $row->count_prod;
$messageMail .= $row->name . " - " . ($row->count_prod/10) . " кг \n";
$prodmes2 .= $row->name . ' - ' . ($row->count_prod/10) . ' кг ' . ' - ' . ($row->price * $row->count_prod) . " руб.\n";
$cartModel->updateProdID($row->cart_id, $row->prod_id,$row->count_prod,$row->price);
}
$priceDostavka = ($total < 3000 && $delivery == 2) ? 250 : 0;
//обновили корзину
$order = $cartModel->updateCart($_SESSION['client_id'], $message, $phone, $total, $adress, $name, $email, $priceDostavka,);
$messageMail .= "-------------
Сумма заказа - {$total} руб.
Мы свяжемся с Вами ближайшее время\n
---
С Уважением";
$messageMail = "Здравствуйте,
Спасибо за Ваш заказ!
Заказ #{$order}
Состав:
-------------\n" . $messageMail;
if($email != '')
{
Mailsend::sendEmail('Ваш заказ #'.$order.' на сайте', $messageMail, $email);
}
$messageMail2 = "---------------------
Заказ - {$order}
Сумму - {$total} руб.
Клиент - {$email}
Телефон - {$phone}
Комментарий - {$comment}
Дата заказа - ".date('d,m,Y H:i')."
Адрес: {$adress}
---------------------\n".$prodmes2;
Mailsend::sendEmail('Заказ - '.$order, $messageMail2, 'mail@site.ru');
return json_encode(['result'=>true);