您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php 利用session 实现最简单的方式实现购物车类

2025/12/16 22:24:49发布26次查看
class cart
{
    /**
    *   函数名称:   additem
    *   函数功能:   添加商品
    *   输入参数:   $data ------------- 商品数组
    *   函数返回值: none
    *   其它说明:   因为数据是记录在session中,所以不用返回
    */
    function additem($data){
     global $config_kezhi;
        if(is_array($data)&&!empty($data)){
            foreach($data as $key=>$val){
                // 如果商品存在就加数量和价格
                if($this->_isexists($key)){
$_session['cart'][$key][paddy_count] += $val['paddy_count'];
     $_session['cart'][$key][market_count] += $val['market_count'];
                    $_session['cart'][$key][goodsnum] += intval($val['goodsnum']);    
     $arr = $this->getitems($key);
                   // $_session['cart'][$key][count] += $_session['cart'][$key][price];
      /* if(strlen($_session['cart'][$key][kezhi])>0){//没有刻字,加入刻字
      $_session['cart'][$key][eng_price]=0;
      $_session['cart'][$key][eng_price]=(int)$config_kezhi*intval($arr['num']);
     }else{
      //die(dd);
      $_session['cart'][$key][eng_price]=0;
     }*/
     //echo $arr['num'];
     //die();
                }
                // 否则直接加入
                else
                {
                    $_session['cart'][$key]  = $data[$key];
                 //   $_session['cart'][$key][name]  = $val['name'];
                  //  $_session['cart'][$key][price] = $val['price'];
                   // $_session['cart'][$key][count] = round($val['price']*intval($val['num']),2);
                  //  $_session['cart'][$key][num]   = intval($val['num']);
                }
            }
        }
    }
    /**
    *   函数名称:   _isexists
    *   函数功能:   判断此商品是否存在
    *   输入参数:   $id ---------- 商品id
    *   函数返回值: bool
    *   其他说明:   2004-8-19
    */
    function _isexists($id)
    {
        if(isset($_session['cart'][$id])&&!empty($_session['cart'][$id])&&array_key_exists($id,$_session['cart']))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    /**
    *   函数名称:   moditem
    *   函数功能:   修改商品数量
    *   输入参数:   $id -------------- 商品id
    *              $num ------------- 商品数量
    *   函数返回值: 返回值说明
    *   其他说明:   说明
    */
    function moditem($id,$num)
    {
        $arr = $this->getitems($id);
        // 如果商品存在就加数量和价格
        if($this->_isexists($id))
        {
   $_session['cart'][$id][goodsnum]   = intval($num);
   if($arr['paddy_price_special'] > 0){
    $_session['cart'][$id][paddy_count] = round($arr['paddy_price_special']*intval($num),2);
   }elseif($arr['paddy_userprice'] > 0){
    $_session['cart'][$id][paddy_count] = round($arr['paddy_userprice']*intval($num),2);
   }elseif($arr['paddy_spreadprice'] > 0){
    $_session['cart'][$id][paddy_count] = round($arr['paddy_spreadprice']*intval($num),2);
   }else{
    $_session['cart'][$id][paddy_count] = round($arr['paddy_price']*intval($num),2);
   }
   $_session['cart'][$id][market_count] = round($arr['market_price']*intval($num),2);
        }
    }
/**
    *   函数名称:   moditem_wanwei
    *   函数功能:   修改商品腕围
    *   输入参数:   $id -------------- 商品id
    *              $num ------------- 商品腕围
    *   函数返回值: 返回值说明
    *   其他说明:   说明
    */ 
    function moditem_wanwei($id,$wanwei)
    {
        $arr = $this->getitems($id);
        // 如果商品存在就加数量和价格
        if($this->_isexists($id))
        {
   $_session['cart'][$id][wanwei]   = intval($wanwei);
///$_session['cart'][$id][count] = round($arr['price']*intval($num),2);
        }
    }
//    function moditem_kezhi($id,$kezhi)
//    {
//        global $config_kezhi;
//  $arr = $this->getitems($id);
//        // 如果商品存在就加数量和价格
//        if($this->_isexists($id))
//        {
//   $_session['cart'][$id][kezhi]   = $kezhi;
//            $_session['cart'][$id]['price'] = $arr['price'] + $config_kezhi;
//   $_session['cart'][$id]['count'] = round($_session['cart'][$id]['price']*intval($arr['num']),2);
//        }
//    }
function moditem_kezhi($id,$kezhi,$kezhi1=,$kezhi2=)
    {
        global $config_kezhi;
  $arr = $this->getitems($id);
        // 如果商品存在就加数量和价格
  //var_dump($_session['cart']);
  // die();
        if($this->_isexists($id))
        {
   if(strlen($_session['cart'][$id][kezhi]) == 0 && strlen($kezhi) != 0){//没有刻字,加入刻字
    //$arr['price'] += $config_kezhi;
    $_session['cart'][$id][eng_price]=0;
    $_session['cart'][$id][eng_price]=(int)$config_kezhi*intval($arr['num']);
   //$_session['cart'][$id][price] = $arr['price'];
   // $_session['cart'][$id][count] = round($arr['price']*intval($arr['num']),2);   
    $_session['cart'][$id][kezhi] = $kezhi;
    $_session['cart'][$id][kezhi1] = $kezhi1;
    $_session['cart'][$id][kezhi2] = $kezhi2; 
    ///$_session['cart'][$id][count] = round($arr['price']*intval($num),2);
   }elseif(strlen($_session['cart'][$id][kezhi]) != 0 && strlen($kezhi) == 0){//有刻字,去除刻字 
    $_session['cart'][$id][eng_price]=0;
    //$_session['cart'][$id][eng_price]-=(int)$config_kezhi*intval($arr['num']);   
   // $_session['cart'][$id][eng_price]-=$config_kezhi;
    //$_session['cart'][$id][price] = $arr['price'];
    //$_session['cart'][$id][count] = round($arr['price']*intval($arr['num']),2);
    $_session['cart'][$id][kezhi] = $kezhi;
    $_session['cart'][$id][kezhi1] = $kezhi1;
    $_session['cart'][$id][kezhi2] = $kezhi2; 
   }elseif(strlen($_session['cart'][$id][kezhi]) != 0 && strlen($kezhi) != 0){//有刻字,更改刻字
    //$_session['cart'][$id][count] = round($arr['price']*intval($arr['num']),2);
    //$_session['cart'][$id][eng_price]=0;
    $_session['cart'][$id][eng_price]=(int)$config_kezhi*intval($arr['num']);
$_session['cart'][$id][kezhi] = $kezhi;
    $_session['cart'][$id][kezhi1] = $kezhi1;
    $_session['cart'][$id][kezhi2] = $kezhi2; 
   }
        }
    }
    /**
    *   函数名称:   getitems
    *   函数功能:   取得商品数组
    *   输入参数:   $id --------------- 某商品的id
    *   函数返回值: array
    *   其它说明:   2004-8-19
    */
    function getitems($id=null)
    {
        if(isset($_session['cart']))
        {
            if($id==null)
            { 
    //print_r($_session['cart']);exit;
                return $_session['cart'];
            }
            else
            {
                return $_session['cart'][$id];
            }
        }
    }
    /**
    *   函数名称:   emptyitem
    *   函数功能:   删除商品
    *   输入参数:   $id ----------- 商品id
    *   函数返回值: bool
    *   其它说明:   2004-8-19
    */
    function emptyitem($id=null)
    {
        if($id==null)
        {
            unset($_session['cart']);
        }
        else
        {
            unset($_session['cart'][$id]);
        }
    }
    /**
    *   函数名称:   sum
    *   函数功能:   统计总价
    *   输入参数:   none
    *   函数返回值: int
    *   其它说明:   2004-8-19
    */
    function sum()
    {
        $total = 0;
        if(isset($_session['cart'])&&!empty($_session['cart']))
        {
            foreach($_session['cart'] as $key=>$val)
            {
                $total += $val['count'];
            }
        }
        return $total;
    }
}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product