コード例 #1
0
ファイル: SiteController.php プロジェクト: Flatis/oishop
 /**
  * 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;
 }
コード例 #2
0
ファイル: CartController.php プロジェクト: KazakovVS/Store
 /**
  * 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;
 }
コード例 #3
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;
 }
コード例 #4
0
 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;
 }
コード例 #5
0
 /**
  * @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);
 }
コード例 #6
0
 /**
  * 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;
 }
コード例 #7
0
ファイル: CartController.php プロジェクト: php-user/shop.com
 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;
 }
コード例 #8
0
ファイル: checkout.php プロジェクト: rodrigofnp/Loja-Exemplo
				<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;
    ?>
コード例 #9
0
 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;
 }
コード例 #10
0
ファイル: index.php プロジェクト: yinm/yinm.github.io
    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);