Создание корзины товаров на пхп. Настройка страницы корзины в WooCommerce. Полный код работы с данными

Здравствуйте. Прошу помощи в создании очень простой корзины товаров. Есть вывод товаров с базы данных, как сделать корзину товаров. Допустим к товарам добавить кнопку "В корзину" при нажатии которой будет добавляться товар в корзину. Сохранение корзины в бд не нужно. Нужна корзина через куки или сессию. Сам сайт: http://host1649597.hostland.pro/category/muzhskaya-parfyumeriya/ Нужна максимально простая, главное что-бы работала)

14 ответов

Para bellum

Самое простое:

class Cart { /** * Данные корзины * * @var array */ protected $data = ; /** * Имя cookie с корзиной * * @var string */ protected $name = "cart"; public function __construct() { $this->decode(); } /** * Добавление ID товара * * @param integer $id * @return void */ public function set($id) { if (!in_array($id, $this->data)) { $this->data = (int) $id; } } /** * Получение массива ID товаров * * @return array */ public function get() { return $this->data; } /** * Удаление товара из корзины * * @param integer $id * @return void */ public function delete($id) { if (false !== $key = array_search($id, $this->data)) { unset($this->data[$key]); } } /** * Получение корзины из cookie * * @return void */ protected function decode() { $data = $_COOKIE[$this->name] ?? ""; if ($data = json_decode($data, true)) { $this->data = array_filter($data, "is_int"); } } /** * Сохранение корзины в cookie * * @return void */ public function save() { setcookie($this->name, json_encode($this->

Использование:

# Добавление ID товара в корзину $cart = new Cart; $cart->set(1); $cart->save(); # Удаление ID товара из корзины $cart = new Cart; $cart->delete(1); $cart->save(); # Получение ID товаров из корзины $cart = new Cart; $ids = $cart->get();

Пара уточнений: 1) Если есть инструменты для работы с запросом и ответом (Request и Response), то напрямую к $_COOKIE лучше не обращаться и setcookie не вызывать, а использовать те инструменты.2) Будет работать только в PHP 7. Для более ранних версий напишите 66 так:

$data = isset($_COOKIE[$this->name]) ? $_COOKIE[$this->name] : "";

М_Сергей

Писать коды не буду, но принцип должен быть следующий. Кнопка "Добавить в корзину" должна быть либо кнопкой формы либо картинкой ссылки, в зависимости от того каким методом будут передаваться данные на сервер POST или GET. В этих данных должны быть ID товара и допустим его кол-во, т.е. два значения. На сервере скрипт обрабатывает эти два значения и помещает в суперглобальный массив SESSION. А уж из него Вы черпаете информацию о добавленных товарах в самой корзине. На основе имеющихся данных в массиве SESSION можно стилизовать кнопку "Корзина" (подсветить там ее и написать сколько товаров в ней лежит...)

Ну вот код кнопки

echo "

NameCodePriceBranddescription
". $row["name"]."". $row["code"]."". $row["price"]."". $row["brand"]."". $row["description"]."Add

";

а именно

Add

Para bellum

Что-то сложно не могу понять Код, что я привёл, сохраните в отдельный файл, затем подключайте его там, где нужно использовать корзину. Как использовать, я сказал после подписи "Использование:". Ничего сложного.добавление в корзину тут то я и бессилен А для кого я готовый код корзины написал? Например, сохранили тот код в файле "Cart.php". Затем, в add_to_trash.php (лучше в add_to_cart.php) пишем:

Корзина .korzina { margin-left: 200px; background: black; width: 200px; height: 200px; color: white; overflow: scroll; } SAMSUNG(250$) NOKIA(150$) APPLE(300$) MOTOROLA(400$) TESLA(500$)

вот вам мой вариант))) у Para bellum правильнее! - мой просто для теста))

посмотрите какая у вас версия php в новой -можно создавать массив $a = ; а старой $a = array();

Para bellum

посмотрите какая у вас версия php У него, наверное, 5.3 ещё. Parse error: syntax error, unexpected "[" in cart.php on line 9 Если нужно, чтобы работало в старинных версиях, вот:

В продолжение темы:
Linux

Социальная сеть «Фотострана» многим не нравится своей навязчивостью, что также проявляется, когда пользователь желает удалить свой аккаунт. В самой сети есть подводные камни,...

Новые статьи
/
Популярные