RemoveWishlist.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Dotdigitalgroup\Email\Observer\Customer;
  3. /**
  4. * Wishlist delete.
  5. */
  6. class RemoveWishlist implements \Magento\Framework\Event\ObserverInterface
  7. {
  8. /**
  9. * @var \Dotdigitalgroup\Email\Helper\Data
  10. */
  11. private $helper;
  12. /**
  13. * @var \Magento\Customer\Api\CustomerRepositoryInterface
  14. */
  15. private $customer;
  16. /**
  17. * @var \Dotdigitalgroup\Email\Model\ImporterFactory
  18. */
  19. private $importerFactory;
  20. /**
  21. * RemoveWishlist constructor.
  22. *
  23. * @param \Magento\Customer\Api\CustomerRepositoryInterface $customer
  24. * @param \Dotdigitalgroup\Email\Model\ImporterFactory $importerFactory
  25. * @param \Dotdigitalgroup\Email\Helper\Data $data
  26. */
  27. public function __construct(
  28. \Magento\Customer\Api\CustomerRepositoryInterface $customer,
  29. \Dotdigitalgroup\Email\Model\ImporterFactory $importerFactory,
  30. \Dotdigitalgroup\Email\Helper\Data $data
  31. ) {
  32. $this->importerFactory = $importerFactory;
  33. $this->customer = $customer;
  34. $this->helper = $data;
  35. }
  36. /**
  37. * @param \Magento\Framework\Event\Observer $observer
  38. */
  39. public function execute(\Magento\Framework\Event\Observer $observer)
  40. {
  41. try {
  42. /** @var \Magento\Wishlist\Model\Wishlist $wishlist */
  43. $wishlist = $observer->getEvent()->getDataObject();
  44. $customer = $this->customer->getById($wishlist->getCustomerId());
  45. $isEnabled = $this->helper->isEnabled($customer->getWebsiteId());
  46. $syncEnabled = $this->helper->getWebsiteConfig(
  47. \Dotdigitalgroup\Email\Helper\Config::XML_PATH_CONNECTOR_SYNC_WISHLIST_ENABLED,
  48. $customer->getWebsiteId()
  49. );
  50. //create a queue item to remote single wishlist
  51. if ($isEnabled && $syncEnabled && $wishlist->getId()) {
  52. //register in queue with importer
  53. $this->importerFactory->create()->registerQueue(
  54. \Dotdigitalgroup\Email\Model\Importer::IMPORT_TYPE_WISHLIST,
  55. [$wishlist->getId()],
  56. \Dotdigitalgroup\Email\Model\Importer::MODE_SINGLE_DELETE,
  57. $customer->getWebsiteId()
  58. );
  59. }
  60. } catch (\Exception $e) {
  61. $this->helper->debug((string)$e, []);
  62. }
  63. }
  64. }