diff --git a/README.md b/README.md index d468bcc..b068b01 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,19 @@ Cart::total(); Cart::count(); // Total items Cart::count(false); // Total rows ``` + +**Cart::search()** + +```php +/** + * Search if the cart has a item + * + * @param Array $search An array with the item ID and optional options + * @return boolean + */ + + Cart::search(array('id' => 1, 'options' => array('size' => 'L'))); +``` ## Collections diff --git a/src/Gloudemans/Shoppingcart/Cart.php b/src/Gloudemans/Shoppingcart/Cart.php index 7c9ccae..88cd147 100644 --- a/src/Gloudemans/Shoppingcart/Cart.php +++ b/src/Gloudemans/Shoppingcart/Cart.php @@ -204,6 +204,24 @@ class Cart { return $count; } + /** + * Search if the cart has a item + * + * @param Array $search An array with the item ID and optional options + * @return boolean + */ + public function search($search) + { + foreach($this->getContent() as $item) + { + $rowId = $this->generateRowId($search['id'], $search['options']); + + if($rowId === $item->rowid) return true; + } + + return false; + } + /** * Generate a unique id for the new row * @@ -211,7 +229,7 @@ class Cart { * @param Array $options Array of additional options, such as 'size' or 'color' * @return boolean */ - public function generateRowId($id, $options) + protected function generateRowId($id, $options) { return md5($id . serialize($options)); } @@ -344,16 +362,4 @@ class Cart { return $this->updateRow($rowId, $attributes); } - public function search($search) - { - foreach($this->getContent() as $item) - { - $rowId = $this->generateRowId($search['id'], $search['options']); - - if($rowId === $item->rowid) return true; - } - - return false; - } - } \ No newline at end of file