Example #1
0
 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;
 }
Example #4
0
 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;
 }