ホームページ >バックエンド開発 >PHPチュートリアル >PHPショッピングカートクラス実装コードの例

PHPショッピングカートクラス実装コードの例

WBOY
WBOYオリジナル
2016-07-25 08:59:371013ブラウズ
  1. // ショッピング カート クラス

  2. /*
  3. 使用説明:
  4. コンストラクター カートはパラメーターを使用できます:
  5. cart($cartname = 'myCart', $session_id = '', $savetype = 'session', $cookietime = 86400, $cookiepath = '/', $cookiedomain = '')
  6. $cartname はショッピング カートの ID であり、重複した名前がないことを保証するために指定できます。関連する競合
  7. $ session_id は、セッション メソッドと Cookie メソッドが存在する場合にのみ、送信に使用されます。その他はCookieに必要なパラメータです

  8. プログラム自体がセッションを使用する場合は、このPHPショッピングカートクラスをCookie実装に変更することをお勧めします。

  9. //商品を追加します

  10. //クラスを参照
  11. require_once './cart.class.php';
  12. //クラスインスタンスを作成します
  13. $cart = new cart();
  14. // 商品には既にデータが変更されています

  15. if ($cart->data[$id]) {
  16. $cart->data[$id]['count'] += $count ;
  17. $cart->data[$id]['money'] += $cart->data[$id]['price'] * $count;
  18. // 商品を追加します
  19. } else {
  20. $cart - >data[$id]['name'] = $name;
  21. $cart->data[$id]['price'] = $price;
  22. $cart->data[$id][' count '] = $count;
  23. $cart->data[$id]['money'] = $price * $count;
  24. }
  25. // ショッピングカートのデータを保存
  26. $cart->save();< ; /p>
  27. 商品の数量を編集します

  28. // クラスを参照します
  29. require_once './cart.class.php';
  30. // クラスのインスタンスを作成します
  31. $cart = new cart();
  32. // 商品には既にデータが変更されています

  33. if ($cart->data[$id]) {
  34. $cart->data[$id]['count'] = $count;
  35. $cart->data[$id]['money'] = $cart->data[$id]['price'] * $count;

  36. // ショッピング カートを保存data

  37. $ cart->save();
  38. }

  39. 商品を削除

  40. // クラスを参照
  41. require_once './cart.class.php';
  42. // クラスインスタンスを作成
  43. $cart = new cart();

  44. // アイテムを削除

  45. unset($cart->data[$id]);

  46. // 保存ショッピング カートのデータ

  47. $cart->save();

  48. ショッピング カートのリスト

  49. // 参照クラス
  50. require_once './cart.class.php';
  51. // クラス インスタンスの作成
  52. $cart = new cart();

  53. foreach ($cart->data AS $k => $v) {

  54. echo '製品 ID: '.$k;
  55. echo '商品名: '.$v['name'];
  56. echo '商品単価: '.$v['price'];
  57. echo '商品数量: '.$v['count'];
  58. echo '商品の合計価格: ' .$v['money'];
  59. }

  60. 特定のフィールドの合計金額---全商品の合計価格など

  61. // 参照class
  62. require_once './cart.class.php';
  63. // クラスインスタンスを作成します
  64. $cart = new cart();

  65. // 金額フィールドを蓄積します

  66. $cart-> sum('money')

  67. < p>ショッピングカートをクリア
  68. // クラスを参照
  69. require_once './cart.class.php';
  70. // クラスインスタンスを作成
  71. $cart = new cart() ;

  72. // データをクリア

  73. unset($cart->data);

    gt;
  74. // ショッピングカートのデータを保存

  75. $cart->save( );
  76. */

  77. //bbs.it-home.org
  78. クラス カート {

  79. // ショッピング カートの識別子

  80. var $cartname = '';
  81. // ストレージタイプ
  82. var $savetype = '';
  83. // ショッピングカート内の商品データ
  84. var $data = array();
  85. // Cookie データ
  86. var $cookietime = 0 ;
  87. var $cookiepath = '/';
  88. var $cookiedomain = '';

  89. // コンストラクター (ショッピング カート ID、$session_id、ストレージ タイプ (セッションまたは Cookie)、デフォルトは時間その日の, $cookiepath, $cookiedomain)

  90. function chart($cartname = 'myCart', $session_id = '', $savetype = 'session', $cookietime = 86400, $cookiepath = '/', $cookiedomain = '' ) {

  91. // セッション ストレージを採用します

  92. if ($savetype == 'session') {

  93. if (!$session_id && $_COOKIE[$cartname .'_session_id']) {

  94. session_id($_COOKIE[$cartname .'_session_id']);
  95. } elseif($session_id)
  96. session_id($session_id);

  97. session_start();

  98. if (!$session_id && !$_COOKIE[$cartname.'_session_id'])

  99. setcookie($cartname.'_session_id', session_id(), $cookietime + time(), $ cookiepath, $cookiedomain);
  100. }

  101. < ;p>$this->cartname = $cartname;
  102. $this->savetype = $savetype;
  103. $this->cookietime = $cookietime;
  104. $this->cookiepath = $cookiepath;
  105. $this->cookiedomain = $cookiedomain;
  106. $this->readdata();
  107. }

  108. // データの読み取り

  109. function readdata() {
  110. if ($this->savetype = = 'セッション') {
  111. if ($_SESSION[$this->カート名] && is_array($_SESSION[$this->カート名]))
  112. $ this->data = $_SESSION[$this->カート名];
  113. else
  114. $this->data = array();
  115. } elseif ($this->savetype == 'cookie') {
  116. if ($_COOKIE[$this->カート名])
  117. $ this->data = unserialize($_COOKIE[$this->カート名]);
  118. else
  119. $this->data = array();
  120. }
  121. }

  122. // ショッピング カート データを保存します

  123. function save() {
  124. if ($this->savetype == 'session') {
  125. $_SESSION[$this->cartname ] = $this->データ;
  126. }elseif ($this->savetype == 'cookie') {
  127. if ($this->data)
  128. setcookie($this->カート名, Serialize($this->data), $this-> cookietime + time(), $this->cookiepath, $this->cookiedomain);
  129. }
  130. }

  131. // 返される商品特定の字段累加

  132. function sum($field) {

  133. $sum = 0;

  134. if ($this->data)
  135. foreach ($this->data AS $v)
  136. if ($v[$field])
  137. $ sum += $v[$field] + 0;

  138. return $sum;

  139. }
  140. }
  141. ?>

复制發


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。