RemoveWishlistItem.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Dotdigitalgroup\Email\Observer\Customer;
  3. /**
  4. * Remove wishlist items.
  5. */
  6. class RemoveWishlistItem implements \Magento\Framework\Event\ObserverInterface
  7. {
  8. /**
  9. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist\CollectionFactory
  10. */
  11. private $emailWishlistCollection;
  12. /**
  13. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist
  14. */
  15. private $emailWishlistResource;
  16. /**
  17. * @var \Dotdigitalgroup\Email\Helper\Data
  18. */
  19. private $helper;
  20. /**
  21. * RemoveWishlistItem constructor.
  22. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist\CollectionFactory $emailWishlistCollection
  23. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist $emailWishlistResource
  24. * @param \Dotdigitalgroup\Email\Helper\Data $data
  25. */
  26. public function __construct(
  27. \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist\CollectionFactory $emailWishlistCollection,
  28. \Dotdigitalgroup\Email\Model\ResourceModel\Wishlist $emailWishlistResource,
  29. \Dotdigitalgroup\Email\Helper\Data $data
  30. ) {
  31. $this->helper = $data;
  32. $this->emailWishlistResource = $emailWishlistResource;
  33. $this->emailWishlistCollection = $emailWishlistCollection;
  34. }
  35. /**
  36. * Delete wishlist item event.
  37. * @param \Magento\Framework\Event\Observer $observer
  38. */
  39. public function execute(\Magento\Framework\Event\Observer $observer)
  40. {
  41. try {
  42. $wishlistItem = $observer->getEvent()->getItem();
  43. $emailWishlist = $this->emailWishlistCollection->create()
  44. ->getWishlistById($wishlistItem->getWishlistId());
  45. if ($emailWishlist) {
  46. $count = $emailWishlist->getItemCount();
  47. //update wishlist count and set to modified
  48. $emailWishlist->setItemCount(--$count);
  49. $emailWishlist->setWishlistModified(1);
  50. $this->emailWishlistResource->save($emailWishlist);
  51. }
  52. } catch (\Exception $e) {
  53. $this->helper->log((string)$e, []);
  54. }
  55. }
  56. }