-
-
- // ショッピング カート クラス
- /*
- 使用説明:
- コンストラクター カートはパラメーターを使用できます:
- cart($cartname = 'myCart', $session_id = '', $savetype = 'session', $cookietime = 86400, $cookiepath = '/', $cookiedomain = '')
- $cartname はショッピング カートの ID であり、重複した名前がないことを保証するために指定できます。関連する競合
- $ session_id は、セッション メソッドと Cookie メソッドが存在する場合にのみ、送信に使用されます。その他はCookieに必要なパラメータです
プログラム自体がセッションを使用する場合は、このPHPショッピングカートクラスをCookie実装に変更することをお勧めします。
//商品を追加します
- //クラスを参照
- require_once './cart.class.php';
- //クラスインスタンスを作成します
- $cart = new cart(); p>
// 商品には既にデータが変更されています
- if ($cart->data[$id]) {
- $cart->data[$id]['count'] += $count ;
- $cart->data[$id]['money'] += $cart->data[$id]['price'] * $count;
- // 商品を追加します
- } else {
- $cart - >data[$id]['name'] = $name;
- $cart->data[$id]['price'] = $price;
- $cart->data[$id][' count '] = $count;
- $cart->data[$id]['money'] = $price * $count;
- }
- // ショッピングカートのデータを保存
- $cart->save();< ; /p>
商品の数量を編集します
- // クラスを参照します
- require_once './cart.class.php';
- // クラスのインスタンスを作成します
- $cart = new cart();
-
// 商品には既にデータが変更されています
- if ($cart->data[$id]) {
- $cart->data[$id]['count'] = $count;
- $cart->data[$id]['money'] = $cart->data[$id]['price'] * $count;
// ショッピング カートを保存data
- $ cart->save();
- }
商品を削除
- // クラスを参照
- require_once './cart.class.php';
- // クラスインスタンスを作成
- $cart = new cart();
// アイテムを削除
- unset($cart->data[$id]);
// 保存ショッピング カートのデータ
- $cart->save();
ショッピング カートのリスト
- // 参照クラス
- require_once './cart.class.php';
- // クラス インスタンスの作成
- $cart = new cart();
foreach ($cart->data AS $k => $v) {
- echo '製品 ID: '.$k;
- echo '商品名: '.$v['name'];
- echo '商品単価: '.$v['price'];
- echo '商品数量: '.$v['count'];
- echo '商品の合計価格: ' .$v['money'];
- }
特定のフィールドの合計金額---全商品の合計価格など
- // 参照class
- require_once './cart.class.php';
- // クラスインスタンスを作成します
- $cart = new cart();
// 金額フィールドを蓄積します
- $cart-> sum('money')
- < p>ショッピングカートをクリア
- // クラスを参照
- require_once './cart.class.php';
- // クラスインスタンスを作成
- $cart = new cart() ;
// データをクリア
- unset($cart->data);gt;
// ショッピングカートのデータを保存
- $cart->save( );
- */
- //bbs.it-home.org
- クラス カート {
// ショッピング カートの識別子
- var $cartname = '';
- // ストレージタイプ
- var $savetype = '';
- // ショッピングカート内の商品データ
- var $data = array();
- // Cookie データ
- var $cookietime = 0 ;
- var $cookiepath = '/';
- var $cookiedomain = '';
// コンストラクター (ショッピング カート ID、$session_id、ストレージ タイプ (セッションまたは Cookie)、デフォルトは時間その日の, $cookiepath, $cookiedomain)
- function chart($cartname = 'myCart', $session_id = '', $savetype = 'session', $cookietime = 86400, $cookiepath = '/', $cookiedomain = '' ) {
// セッション ストレージを採用します
- if ($savetype == 'session') {
if (!$session_id && $_COOKIE[$cartname .'_session_id']) {
- session_id($_COOKIE[$cartname .'_session_id']);
- } elseif($session_id)
- session_id($session_id);
session_start();
if (!$session_id && !$_COOKIE[$cartname.'_session_id'])
- setcookie($cartname.'_session_id', session_id(), $cookietime + time(), $ cookiepath, $cookiedomain);
- }
- < ;p>$this->cartname = $cartname;
- $this->savetype = $savetype;
- $this->cookietime = $cookietime;
- $this->cookiepath = $cookiepath;
- $this->cookiedomain = $cookiedomain;
- $this->readdata();
- }
// データの読み取り
- function readdata() {
- if ($this->savetype = = 'セッション') {
- if ($_SESSION[$this->カート名] && is_array($_SESSION[$this->カート名]))
- $ this->data = $_SESSION[$this->カート名];
- else
- $this->data = array();
- } elseif ($this->savetype == 'cookie') {
- if ($_COOKIE[$this->カート名])
- $ this->data = unserialize($_COOKIE[$this->カート名]);
- else
- $this->data = array();
- }
- }
// ショッピング カート データを保存します
- function save() {
- if ($this->savetype == 'session') {
- $_SESSION[$this->cartname ] = $this->データ;
- }elseif ($this->savetype == 'cookie') {
- if ($this->data)
- setcookie($this->カート名, Serialize($this->data), $this-> cookietime + time(), $this->cookiepath, $this->cookiedomain);
- }
- }
// 返される商品特定の字段累加
- function sum($field) {
$sum = 0;
- if ($this->data)
- foreach ($this->data AS $v)
- if ($v[$field])
- $ sum += $v[$field] + 0;
return $sum;
- }
- }
- ?>
-
复制發
|