/** * Action для главной страницы */ public function actionIndex() { // Список категорий для левого меню $categories = Category::getCategoriesList(); // Список последних товаров $latestProducts = Product::getLatestProducts(6); // Список товаров для слайдера $sliderProducts = Product::getRecommendedProducts(); // Показывыем в корзине информацию о добавленных товарах $productsInCart = Cart::getProducts(); if ($productsInCart) { // Если в корзине есть товары, получаем полную информацию о товарах для списка // Получаем массив только с идентификаторами товаров $productsIds = array_keys($productsInCart); // Получаем массив с полной информацией о необходимых товарах $products = Product::getProdustsByIds($productsIds); // Получаем общую стоимость товаров $totalPrice = Cart::getTotalPrice($products); } // Получаем идентификатор пользователя из сессии $userId = $_SESSION['user']; // Получаем информацию о пользователе из БД $user = User::getUserById($userId); // Подключаем вид require_once ROOT . '/views/site/index.php'; return true; }
/** * Action для страницы "Оформление покупки" */ public function actionCheckout() { $productsInCart = Cart::getProducts(); if ($productsInCart == false) { header("Location: /"); } $categories = Category::getCategoriesList(); // Находим общую стоимость $productsIds = array_keys($productsInCart); $products = Product::getProdustsByIds($productsIds); $totalPrice = Cart::getTotalPrice($products); // Количество товаров $totalQuantity = Cart::countItems(); $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 = '<a href="localhost/admin/orders">Список заказов</a>'; $subject = 'Новый заказ!'; mail($adminEmail, $subject, $message); // Очищаем корзину Cart::clear(); } } } // Подключаем вид require_once ROOT . '/views/cart/checkout.php'; return true; }
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; }
/** * @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; }
public function actionOrder() { $categories = Category::getCategoryList(); if (!$categories) { $categories = array(); } $name = ''; $phone = ''; $message = ''; $result = ''; if (isset($_POST['submit'])) { $name = FunctionLibrary::clearStr($_POST['name']); $phone = FunctionLibrary::clearStr($_POST['phone']); $message = FunctionLibrary::clearStr($_POST['message']); $errors = array(); if (!User::checkName($name)) { $errors[] = 'Имя должно быть больше 1 символа.'; } if (!User::checkPhone($phone)) { $errors[] = 'Невалидный телефон.'; } if (!User::checkName($message)) { $errors[] = 'Сообщение не может быть пустым.'; } $sessionProducts = Cart::returnSessionProducts(); if ($sessionProducts) { $idsArray = array_keys($sessionProducts); $products = Product::getProductsInCart($idsArray); $totalPrice = Cart::getTotalPrice($products); $totalCount = Cart::countProductsInCart(); if (User::isUser()) { $email = User::isLogged(); $user = User::getUserByEmail($email); $userName = $user['name']; $userId = $user['id']; } else { $userName = ''; $userId = 0; } } if (empty($errors)) { $result = Order::save($name, $phone, $message, $userId, $sessionProducts); if ($result) { $adminEmail = '*****@*****.**'; $sub = "Новый заказ"; $mess = "{$message}"; mail($adminEmail, $sub, $mess); $_SESSION['message'] = 'Заказ оформлен'; Cart::deleteProductsInCart(); FunctionLibrary::redirectTo('/cart'); } } } else { /* Выясняем есть ли товары в корзине */ $sessionProducts = Cart::returnSessionProducts(); if (!$sessionProducts) { FunctionLibrary::redirectTo('/'); } else { $idsArray = array_keys($sessionProducts); $products = Product::getProductsInCart($idsArray); $totalPrice = Cart::getTotalPrice($products); $totalCount = Cart::countProductsInCart(); } /* Выясняем зарегистрирован ли покупатель */ if (User::isUser()) { $email = User::isLogged(); $user = User::getUserByEmail($email); $userName = $user['name']; } else { $userName = ''; } } require_once ROOT . '/views/cart/order.php'; return true; }
<div class="checkout-user-form"> <h2>Resumo da compra</h2> <table class="table "> <tr class="text-bold text-center"> <td class="column">Quantidade de Itens</td> <td class="column">Valor dos Itens</td> <td class="column">Valores Adicionais</td> <td class="column">Valor Total</td> </tr> <tr class="text-center"> <td class="column"><?php echo Cart::getItensCount(); ?> </td> <td class="column"><?php echo formatMoney(Cart::getTotalPrice()); ?> </td> <td class="column"><?php echo formatMoney(Cart::getTaxes()); ?> </td> <td class="column"><?php echo formatMoney(Cart::getTotalPriceWithTaxes()); ?> </td> </tr> </table> <input type="hidden" id='total' value="<?php echo (Cart::getTotalPriceWithTaxes() - 1.5) * 100; ?>
public function actionCheckout() { // get data from Cart $productInCart = Cart::getProduct(); if ($productInCart == false) { header("Location: /"); } // get categories list for left menu $categories = Category::getCategoriesList(); // get total price $productsId = array_keys($productInCart); $products = Product::getProductByIds($productsId); $totalPrice = Cart::getTotalPrice($products); // get count of products $totalQuantity = Cart::countItems(); // fields for form $userName = false; $userPhone = false; $userComment = false; // the status of a successful checkout $result = false; // check is user guest if (!User::isGuest()) { // if user not guest get his info from database $userId = User::checkLogged(); $user = User::getUserById($userId); $userName = $user['name']; } else { // if user is guest -- the forms field will be empty $userId = false; } if (isset($_POST['submit'])) { // read form data $userName = $_POST['userName']; $userPhone = $_POST['userPhone']; $userComment = $_POST['userComment']; // data validation $errors = false; if (!User::checkName($userName)) { $errors[] = 'Wrong input name'; } if (!User::checkPhoneNumber($userPhone)) { $errors[] = 'Wrong intup Phone number'; } if ($errors == false) { // data input correctly // save order in database $result = Order::save($userName, $userPhone, $userComment, $userId, $productInCart); // send email if ($result) { // $adminEmail = '*****@*****.**'; // $message = 'future link on admin part'; // $subject = 'New order'; // mail($adminEmail, $subject, $message); // clear the cart Cart::clear(); } } } require_once ROOT . '/views/cart/checkout.php'; return true; }
public function getPrice() { return $this->price; } } class Cart { private $products = array(); public function addProduct($product) { $product->applyPriceDown(); $this->products[] = $product; } public function getTotalPrice() { $total = 0; foreach ($this->products as $product) { $total += $product->getPrice(); } return $total; } } $cart = new Cart(); $meet = new Meet(); $vegetable = new Vegetable(); $freezed = new FreezedFood(); $cart->addProduct($meet); $cart->addProduct($vegetable); $cart->addProduct($freezed); $total = $cart->getTotalPrice(); var_dump($total);