SetSpecialPriceStartDate.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Catalog\Observer;
  7. use Magento\Framework\Event\ObserverInterface;
  8. /**
  9. * Set value for Special Price start date
  10. */
  11. class SetSpecialPriceStartDate implements ObserverInterface
  12. {
  13. /**
  14. * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
  15. */
  16. private $localeDate;
  17. /**
  18. * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
  19. * @codeCoverageIgnore
  20. */
  21. public function __construct(\Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate)
  22. {
  23. $this->localeDate = $localeDate;
  24. }
  25. /**
  26. * Set the current date to Special Price From attribute if it empty
  27. *
  28. * @param \Magento\Framework\Event\Observer $observer
  29. * @return $this
  30. */
  31. public function execute(\Magento\Framework\Event\Observer $observer)
  32. {
  33. /** @var $product \Magento\Catalog\Model\Product */
  34. $product = $observer->getEvent()->getProduct();
  35. if ($product->getSpecialPrice() && !$product->getSpecialFromDate()) {
  36. $product->setData('special_from_date', $this->localeDate->date());
  37. }
  38. return $this;
  39. }
  40. }