На главную Статьи Функции

Интернет магазин. Корзина на PHP (часть 3).




Итак, продолжаем разработку функциональности  корзины нашего интернет магазин. Возможность положить товар в корзину у нас уже есть, однако мы еще не можем обновлять количество товара, удалять товары из корзины и подсчитывать сумму корзины.
Первая функция, которая нам пригодится, назовем ее remove_from_cart(),  и она будет удалять товар из корзины. Вот пример такой функции:

  function remove_from_cart($delete_key) { 
	unset($_SESSION['product_id'][$delete_key]); 
	unset($_SESSION['product_price'][$delete_key]);
	unset($_SESSION['product_count'][$delete_key]); 
	$_SESSION['prod_count']=$_SESSION['prod_count']-1;
	sort($_SESSION['product_id']);
	sort($_SESSION['product_price']);
	sort($_SESSION['product_count']); 
	update_cart_sum();
  } 

А теперь по порядку. Обязательный параметр функции - $delete_key, откуда он берется и чему соответствует, я опишу ниже. Первые три строки удаляют переменные, соответствующие товару в корзине (я надеюсь вы знакомы с функцией unset).  Следующая строка: $_SESSION['prod_count']=$_SESSION['prod_count']-1
уменьшает количество товаров в корзине на 1.

Следующие три строки сортируют массивы идентификаторов продуктов, цен и количеств. Функция sort выполняет сортировку массива с изменением ключей. Ее действие можно проиллюстрировать следующим примером. Допустим у нас есть массив чисел array(0=>’1’, 1=>’12’, 3=>’11’, 6=>’23’). После применения функции sort к такому массиву получится новый массив array(0=>’1’, 1=>’12’, 2=>’11’, 3=>’23’). Зачем такие сложности? Немного терпения и все будет понятно.
Ну и последняя строка update_cart_sum() – вызов некой функции, по названию которой можно понять, что она выполняет обновление суммы корзины. Поскольку эта функция довольно проста, я сразу приведу ее код:

  function update_cart_sum()  { 
	  $_SESSION['cart_sum']=0; 
	  for ($i=0; $i<$_SESSION['prod_count']; $i++) { 
		$_SESSION['cart_sum']=$_SESSION['cart_sum'] + $_SESSION['product_price'][$i]* $_SESSION['product_count'][$i]; 
	  } 
  } 
  

Тут совсем просто. В начале обнуляем сумму корзины, затем обходим циклом все товары и складываем их цены помноженные на их количество. Обратите внимание, что данную функцию нужно запускать при любых действиях с корзиной, т.е. ее вызов нужно добавить в конце функции addtocart() описанной в статье Интернет магазин. Корзина на PHP (часть 2).

Итак, мы научились удалять товары из корзины. Второе, что необходимо сделать – изменить количество выбранного товара в корзине. Тут тоже ничего сложного, вот код:

  function update_cart($cnt, $update_key) { 
	$_SESSION['product_count'][$update_key]=$cnt;
	update_cart_sum();
  }
  

Обязательные параметры - $cnt – новое количество товара и $update_key – ключ массива, соответствующий номеру товара в многомерных массивах $_SESSION['product_id'], $_SESSION['product_price'], $_SESSION['product_count']. Первая строка изменяет количество товара, вторая – вызов уже знакомой функции update_cart_sum().

Что дальше? В следующей статье нужно будет собрать все в одном файле, который будет отвечать за связь наших функций с действиями пользователей.



© 2010-2024 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна

обратная связь