git-svn-id: https://192.168.0.254/svn/Proyectos.ClaveAudio_Web/trunk@2 44ade383-bb54-5b4f-835b-923f7702b206
160 lines
4.8 KiB
PHP
160 lines
4.8 KiB
PHP
<?php
|
|
/*
|
|
######################################################################
|
|
# __ __ __ ___ #
|
|
#/\ \ __/\ \ /\ \ /'___\ #
|
|
#\ \ \/\ \ \ \ __\ \ \____/\ \__/ ___ _ __ ___ __ #
|
|
# \ \ \ \ \ \ \ /'__`\ \ '__`\ \ ,__\/ __`\/\`'__\/'___\ /'__`\ #
|
|
# \ \ \_/ \_\ \/\ __/\ \ \L\ \ \ \_/\ \L\ \ \ \//\ \__//\ __/ #
|
|
# \ `\___x___/\ \____\\ \_,__/\ \_\\ \____/\ \_\\ \____\ \____\ #
|
|
# '\/__//__/ \/____/ \/___/ \/_/ \/___/ \/_/ \/____/\/____/ #
|
|
# #
|
|
# ) ___ #
|
|
# (__/_____) webforce cart v.1.2 #
|
|
# / _ __ _/_ (c) 2004 Eaden McKee #
|
|
# / (_(_/ (_(__ webforce.co.nz/cart #
|
|
# (______) all rights reserved #
|
|
# #
|
|
# Session based, Object Oriented Shopping Cart Component for PHP #
|
|
# #
|
|
######################################################################
|
|
# Ver 1.4 - demo included
|
|
# Ver 1.3 - bugfix with total
|
|
# Ver 1.2 - added empty_cart()
|
|
# Ver 1.0 - initial release
|
|
You are allowed to use this script in websites you create.
|
|
However you may not distribute any part of this script.
|
|
*** Instructions at http://www.webforce.co.nz/cart/php-cart.php ***
|
|
**** READ THEM! ***
|
|
|
|
BUGS/PATCHES
|
|
|
|
Please email eaden@webforce.co.nz with any bugs/fixes/patches/comments etc.
|
|
See http://www.webforce.co.nz/cart/ for updates to this script
|
|
|
|
*/
|
|
class wfCart {
|
|
var $total = 0;
|
|
var $itemcount = 0;
|
|
var $items = array();
|
|
var $itemprices = array();
|
|
var $itemqtys = array();
|
|
var $iteminfo = array();
|
|
|
|
function cart() {} // constructor function
|
|
|
|
function get_contents()
|
|
{ // gets cart contents
|
|
$items = array();
|
|
foreach($this->items as $tmp_item)
|
|
{
|
|
$item = FALSE;
|
|
|
|
$item['id'] = $tmp_item;
|
|
$item['qty'] = $this->itemqtys[$tmp_item];
|
|
$item['price'] = $this->itemprices[$tmp_item];
|
|
$item['info'] = $this->iteminfo[$tmp_item];
|
|
$item['subtotal'] = $item['qty'] * $item['price'];
|
|
$items[] = $item;
|
|
}
|
|
return $items;
|
|
} // end of get_contents
|
|
|
|
|
|
function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE)
|
|
{ // adds an item to cart
|
|
if(!$price)
|
|
{
|
|
$price = wf_get_price($itemid,$qty);
|
|
}
|
|
|
|
if(!$info)
|
|
{
|
|
$info = wf_get_info($itemid);
|
|
}
|
|
|
|
if($this->itemqtys[$itemid] > 0)
|
|
{ // the item is already in the cart..
|
|
// so we'll just increase the quantity
|
|
$this->itemqtys[$itemid] = $qty + $this->itemqtys[$itemid];
|
|
$this->_update_total();
|
|
} else {
|
|
$this->items[]=$itemid;
|
|
$this->itemqtys[$itemid] = $qty;
|
|
$this->itemprices[$itemid] = $price;
|
|
$this->iteminfo[$itemid] = $info;
|
|
}
|
|
$this->_update_total();
|
|
} // end of add_item
|
|
|
|
|
|
function edit_item($itemid,$qty)
|
|
{ // changes an items quantity
|
|
|
|
if($qty < 1) {
|
|
$this->del_item($itemid);
|
|
} else {
|
|
$this->itemqtys[$itemid] = $qty;
|
|
// uncomment this line if using
|
|
// the wf_get_price function
|
|
// $this->itemprices[$itemid] = wf_get_price($itemid,$qty);
|
|
}
|
|
$this->_update_total();
|
|
} // end of edit_item
|
|
|
|
|
|
function del_item($itemid)
|
|
{ // removes an item from cart
|
|
$ti = array();
|
|
$this->itemqtys[$itemid] = 0;
|
|
foreach($this->items as $item)
|
|
{
|
|
if($item != $itemid)
|
|
{
|
|
$ti[] = $item;
|
|
}
|
|
}
|
|
$this->items = $ti;
|
|
$this->_update_total();
|
|
} //end of del_item
|
|
|
|
|
|
function empty_cart()
|
|
{ // empties/resets the cart
|
|
$this->total = 0;
|
|
$this->itemcount = 0;
|
|
$this->items = array();
|
|
$this->itemprices = array();
|
|
$this->itemqtys = array();
|
|
$this->itemdescs = array();
|
|
} // end of empty cart
|
|
|
|
|
|
function _update_total()
|
|
{ // internal function to update the total in the cart
|
|
$this->itemcount = 0;
|
|
$this->total = 0;
|
|
if(sizeof($this->items > 0))
|
|
{
|
|
foreach($this->items as $item) {
|
|
$this->total = $this->total + ($this->itemprices[$item] * $this->itemqtys[$item]);
|
|
$this->itemcount++;
|
|
}
|
|
}
|
|
} // end of update_total
|
|
|
|
// added by ff
|
|
function find_item($itemid)
|
|
{ // finds if an item is in the cart
|
|
// returns the qty of such item
|
|
return ($this->itemqtys[$itemid]);
|
|
} //end of del_item
|
|
|
|
function edit_iteminfo($itemid,$info)
|
|
{ // changes an items quantity
|
|
$this->iteminfo[$itemid] = $info;
|
|
} // end of edit_item
|
|
|
|
}
|
|
?>
|