1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace Dotdigitalgroup\Email\Controller\Ajax;
- class Emailcapture extends \Magento\Framework\App\Action\Action
- {
- /**
- * @var \Magento\Quote\Model\ResourceModel\Quote
- */
- private $quoteResource;
- /**
- * @var \Dotdigitalgroup\Email\Helper\Data
- */
- private $helper;
- /**
- * @var \Magento\Checkout\Model\Session
- */
- private $checkoutSession;
- /**
- * Emailcapture constructor.
- * @param \Dotdigitalgroup\Email\Helper\Data $data
- * @param \Magento\Quote\Model\ResourceModel\Quote $quoteResource
- * @param \Magento\Checkout\Model\Session $session
- * @param \Magento\Framework\App\Action\Context $context
- */
- public function __construct(
- \Dotdigitalgroup\Email\Helper\Data $data,
- \Magento\Quote\Model\ResourceModel\Quote $quoteResource,
- \Magento\Checkout\Model\Session $session,
- \Magento\Framework\App\Action\Context $context
- ) {
- $this->helper = $data;
- $this->quoteResource = $quoteResource;
- $this->checkoutSession = $session;
- parent::__construct($context);
- }
- /**
- * Easy email capture for Newsletter and Checkout.
- *
- * @return null
- */
- public function execute()
- {
- $email = $this->getRequest()->getParam('email');
- if ($email && $quote = $this->checkoutSession->getQuote()) {
- if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- return null;
- }
- if ($quote->hasItems()) {
- try {
- $quote->setCustomerEmail($email);
- $this->quoteResource->save($quote);
- } catch (\Exception $e) {
- $this->helper->debug((string)$e, []);
- }
- }
- }
- }
- }
|