diff --git a/README.md b/README.md index 69327d03..017124bc 100644 --- a/README.md +++ b/README.md @@ -653,15 +653,18 @@ The Cart package will throw exceptions if something goes wrong. This way it's ea The cart also has events build in. There are five events available for you to listen for. -| Event | Fired | Parameter | -| ------------- | ---------------------------------------- | -------------------------------- | -| cart.added | When an item was added to the cart. | The `CartItem` that was added. | -| cart.updated | When an item in the cart was updated. | The `CartItem` that was updated. | -| cart.removed | When an item is removed from the cart. | The `CartItem` that was removed. | -| cart.merged | When the content of a cart is merged | - | -| cart.stored | When the content of a cart was stored. | - | -| cart.restored | When the content of a cart was restored. | - | -| cart.erased | When the content of a cart was erased. | - | +| Event | Fired | Parameter | +| ------------- | ---------------------------------------- | ------------------------------------- | +| cart.adding | When adding an item to the cart. | The `CartItem` that is being added. | +| cart.updating | When updating an item to the cart. | The `CartItem` that is being updated. | +| cart.removing | When removing an item to the cart. | The `CartItem` that is being removed. | +| cart.added | When an item was added to the cart. | The `CartItem` that was added. | +| cart.updated | When an item was updated to the cart. | The `CartItem` that was updated. | +| cart.removed | When an item was removed from the cart. | The `CartItem` that was removed. | +| cart.merged | When the content of a cart is merged | - | +| cart.stored | When the content of a cart was stored. | - | +| cart.restored | When the content of a cart was restored. | - | +| cart.erased | When the content of a cart was erased. | - | ## Example diff --git a/src/Cart.php b/src/Cart.php index a28e1ec6..369bb2ec 100644 --- a/src/Cart.php +++ b/src/Cart.php @@ -167,11 +167,15 @@ public function addCartItem($item, $keepDiscount = false, $keepTax = false, $dis $content->put($item->rowId, $item); if ($dispatchEvent) { - $this->events->dispatch('cart.added', $item); + $this->events->dispatch('cart.adding', $item); } $this->session->put($this->instance, $content); + if ($dispatchEvent) { + $this->events->dispatch('cart.added', $item); + } + return $item; } @@ -222,10 +226,12 @@ public function update($rowId, $qty) } } - $this->events->dispatch('cart.updated', $cartItem); + $this->events->dispatch('cart.updating', $cartItem); $this->session->put($this->instance, $content); + $this->events->dispatch('cart.updated', $cartItem); + return $cartItem; } @@ -244,9 +250,11 @@ public function remove($rowId) $content->pull($cartItem->rowId); - $this->events->dispatch('cart.removed', $cartItem); + $this->events->dispatch('cart.removing', $cartItem); $this->session->put($this->instance, $content); + + $this->events->dispatch('cart.removed', $cartItem); } /**