ProductProcessUrlRewriteRemovingObserver.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\CatalogUrlRewrite\Observer;
  7. use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator;
  8. use Magento\UrlRewrite\Model\UrlPersistInterface;
  9. use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
  10. use Magento\Framework\Event\ObserverInterface;
  11. class ProductProcessUrlRewriteRemovingObserver implements ObserverInterface
  12. {
  13. /**
  14. * @var UrlPersistInterface
  15. */
  16. protected $urlPersist;
  17. /**
  18. * @param UrlPersistInterface $urlPersist
  19. */
  20. public function __construct(
  21. UrlPersistInterface $urlPersist
  22. ) {
  23. $this->urlPersist = $urlPersist;
  24. }
  25. /**
  26. * Remove product urls from storage
  27. *
  28. * @param \Magento\Framework\Event\Observer $observer
  29. * @return void
  30. */
  31. public function execute(\Magento\Framework\Event\Observer $observer)
  32. {
  33. /** @var \Magento\Catalog\Model\Product $product */
  34. $product = $observer->getEvent()->getProduct();
  35. if ($product->getId()) {
  36. $this->urlPersist->deleteByData(
  37. [
  38. UrlRewrite::ENTITY_ID => $product->getId(),
  39. UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE,
  40. ]
  41. );
  42. }
  43. }
  44. }