public function actionOrder() { $categories = Category::getCategoriesList(); if (!$categories) { $categories = array(); } $name = ''; $phone = ''; $comment = ''; $userName = ''; $sessionProducts = Cart::getSessionProducts(); if ($sessionProducts) { $productsIdsArray = array_keys($sessionProducts); $products = Product::getProductsByIds($productsIdsArray); $totalPrice = Cart::getTotalPrice($products); $totalProductCount = Cart::countProductsInCart(); } if (isset($_POST['submit'])) { $name = FunctionLibrary::clearStr($_POST['name']); $phone = FunctionLibrary::clearStr($_POST['phone']); $comment = nl2br(FunctionLibrary::clearStr($_POST['comment'])); $errors = array(); if (!User::checkName($name)) { $errors[] = 'Имя не может быть пустым.'; } if (!User::checkPhone($phone)) { $errors[] = 'Невалидный номер телефона.'; } if (!User::checkName($comment)) { $errors[] = 'Комментарий не может быть пустым.'; } if (empty($errors)) { if (User::isUser()) { $email = User::isLogged(); $user = User::getUserByEmail($email); $userId = htmlentities($user['id']); } else { $userId = false; } $result = Order::save($name, $phone, $comment, $userId, $sessionProducts); if ($result) { $_SESSION['message'] = 'Заказ оформлен!'; Cart::annul(); FunctionLibrary::redirectTo('/cart'); } } } else { if (!$sessionProducts) { FunctionLibrary::redirectTo('/'); } if (User::isUser()) { $email = User::isLogged(); $user = User::getUserByEmail($email); $userName = htmlentities($user['name']); } } require_once ROOT . '/views/cart/order.php'; return true; }
public function actionIndex() { $catObj = new Category(); $categories = $catObj->getCategoriesList(); $productsInCart = Cart::getProducts() ? Cart::getProducts() : false; if ($productsInCart) { $productIds = array_keys($productsInCart); $products = Product::getProductsByIds($productIds); $totalPrice = Cart::getTotalPrice($products); } require_once ROOT . '/views/cart/index.php'; return true; }
/** * Action для страницы "Просмотр заказа" */ public function actionView($id) { // Получаем данные о конкретном заказе $order = Order::getOrderById($id); // Получаем массив с идентификаторами и количеством товаров $productsInOrder = json_decode($order['products'], true); // Получаем массив с ключами товаров $productsIds = array_keys($productsInOrder); // Получаем список товаров в заказе $products = Product::getProductsByIds($productsIds); // Подключаем вид require_once ROOT . '/views/admin_order/view.php'; return true; }
public static function showUserOrder($order) { if (isset($order) && !empty($order)) { $productsColumn = $order['products']; if ($productsColumn) { $idsAndQuantity = json_decode($productsColumn, true); $idsString = array_keys($idsAndQuantity); $products = Product::getProductsByIds($idsString); $totalPrice = Order::getTotalOrdersPrice($products, $idsAndQuantity); $totalQuantity = Order::countProductsInOrder($idsAndQuantity); $date = $order['date']; $status = $order['status']; return array($products, $totalPrice, $totalQuantity, $idsAndQuantity, $date, $status); } } }
public function actionView($id) { $order = Order::getOrderById($id, false); if (isset($order) && !empty($order)) { $productsColumn = $order['products']; if ($productsColumn) { $idsAndQuantity = json_decode($productsColumn, true); $idsString = array_keys($idsAndQuantity); $products = Product::getProductsByIds($idsString); $totalPrice = Order::getTotalOrdersPrice($products, $idsAndQuantity); $totalQuantity = Order::countProductsInOrder($idsAndQuantity); } } require_once ROOT . '/views/admin-order/view.php'; return true; }
/** * @return bool * Метод для оформления заказа */ public function actionCheckout() { $productsInCart = Cart::getProducts(); if ($productsInCart == false) { //Если корзина пустая,пользователь перенаправляется на главную header("Location: /"); } $categories = Category::getCategoriesList(); $productsIds = array_keys($productsInCart); $products = Product::getProductsByIds($productsIds); $totalPrice = Cart::getTotalPrice($products); $totalItems = Cart::countItems(); //общее кол-во товаров $userName = ''; $userPhone = ''; $userMessage = ''; $res = false; //флаг успешного оформления заказа $fail = ''; if (!User::isGuest()) { $userId = User::isLogged(); //если пользователь не гость,получаем инфу о нем из БД $user = User::getUserById($userId); $userName = $user['name']; } else { $userId = false; } if (isset($_POST['submit'])) { //Если форма отправлена,получаем данные для полей $userName = $_POST['userName']; $userPhone = $_POST['userPhone']; $userMessage = $_POST['userMessage']; if (!User::isValidNamePhone($userName, $userPhone)) { $fail = 'Номер должен быть больше 9 символов/имя не может быть пустым'; } //Если все ок,записываем заказ в БД if ($fail == false) { $res = Order::save($userName, $userPhone, $userId, $userMessage, $productsInCart); if ($res) { Cart::clearCart(); } } } $args = array('categories' => $categories, 'productsInCart' => $productsInCart, 'productsIds' => $productsIds, 'products' => $products, 'totalPrice' => $totalPrice, 'totalItems' => $totalItems, 'fail' => $fail, 'res' => $res, 'userName' => $userName, 'userPhone' => $userPhone, 'userMessage' => $userMessage); return self::render('checkout', $args); }
/** * Action для страницы "Оформление покупки" */ public function actionCheckout() { // Получаем данные из корзины $productsInCart = Cart::getProductsInCart(); // Если товаров нет, отправляем пользователи искать товары на главную if ($productsInCart == false) { header("Location: /"); } // Список категорий для левого меню $categories = Category::getCategoriesList(); // Находим общую стоимость $productsIds = array_keys($productsInCart); $products = Product::getProductsByIds($productsIds); $totalPrice = Cart::getTotalPrice($products); // Количество товаров $totalQuantity = Cart::cartItems(); // Поля для формы $userName = false; $userPhone = false; $userComment = false; // Статус успешного оформления заказа $result = false; // Проверяем является ли пользователь гостем if (!User::isGuest()) { // Если пользователь не гость // Получаем информацию о пользователе из БД $userId = User::checkLogged(); $user = User::getUserById($userId); $userName = $user['name']; } else { // Если гость, поля формы останутся пустыми $userId = false; } // Обработка формы if (isset($_POST['submit'])) { // Если форма отправлена // Получаем данные из формы $userName = $_POST['userName']; $userPhone = $_POST['userPhone']; $userComment = $_POST['userComment']; // Флаг ошибок $errors = false; // Валидация полей if (!User::checkName($userName)) { $errors[] = 'Неправильное имя'; } if (!User::checkPhone($userPhone)) { $errors[] = 'Неправильный телефон'; } if ($errors == false) { // Если ошибок нет // Сохраняем заказ в базе данных $result = Order::save($userName, $userPhone, $userComment, $userId, $productsInCart); if ($result) { // Если заказ успешно сохранен // Оповещаем администратора о новом заказе по почте $adminEmail = '*****@*****.**'; $message = 'Cписок заказов'; $subject = 'Новый заказ!'; mail($adminEmail, $subject, $message); // Очищаем корзину Cart::clear(); } } } // Подключаем вид require_once ROOT . '/views/cart/checkout.php'; return true; }