Gekissimo.net - Opi ansaitsemaan rahaa webilläsi Internetissä!

Kuinka ottaa Ajax-uutiskirje käyttöön Magento 2:ssa

Seuraava artikkeli auttaa sinua: Kuinka ottaa Ajax-uutiskirje käyttöön Magento 2:ssa

/**

*

*/

nimiavaruus Vendor\Extension\Controller\Plugin\Subscriber;

käytä Magento\Customer\Api\AccountManagementInterfacea CustomerAccountManagement-sovelluksena;

käytä Magento\Customer\Model\Session;

käytä Magento\Customer\Model\Url-osoitetta CustomerUrl-osoitteena;

käytä Magento\Framework\App\Action\Context;

käytä Magento\Store\Model\StoreManagerInterfacea;

käytä Magento\Newsletter\Model\SubscriberFactory;

/**

* Luokka NewAction

*/

luokka NewAction laajentaa \Magento\Newsletter\Controller\Subscriber\NewAction

{

/**

* @var CustomerAccountManagement

*/

suojattu $customerAccountManagement;

suojattu $resultJsonFactory;

/**

* Alusta riippuvuudet.

*

* @param Context $context

* @param SubscriberFactory $subscriberFactory

* @param Session $customerSession

* @param StoreManagerInterface $storeManager

* @param CustomerUrl $customerUrl

* @param CustomerAccountManagement $customerAccountManagement

*/

julkinen funktio __construct(

konteksti $konteksti,

SubscriberFactory $subscriberFactory,

Istunto $customerSession,

StoreManagerInterface $storeManager,

CustomerUrl $customerUrl,

CustomerAccountManagement $customerAccountManagement,

\Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory

)

{

$this->customerAccountManagement = $customerAccountManagement;

$this->resultJsonFactory = $resultJsonFactory;

vanhempi::__konstrukti(

$context,

$subscriberFactory,

$customerSession,

$storeManager,

$customerUrl,

$customerAccountManagement

);

}

/**

* Hae käytettävissä olevien tilauskenttien luettelo

*

* @return array

*/

julkinen toiminto noin Execute($subject, $procede)

{

$vastaus = [];

if ($this->getRequest()->isPost() && $this->getRequest()->getPost(‘sähköposti’)) {

$sähköposti = (merkkijono)$this->getRequest()->getPost(‘sähköposti’);

yrittää {

$this->validateEmailFormat($email);

$this->validateGuestSubscription();

$this->validateEmailAvailable($email);

$tila = $this->_subscriberFactory->luo()->tilaa($sähköposti);

if ($status == \Magento\Newsletter\Model\Subscriber::STATUS_NOT_ACTIVE) {

$vastaus = [

                        ‘status’ => ‘OK’,

                        ‘msg’ => ‘The confirmation request has been sent.’,

                    ];

} muu {

$vastaus = [

                        ‘status’ => ‘OK’,

                        ‘msg’ => ‘Thank you for your subscription.’,

                    ];

}

} catch (\Magento\Framework\Exception\LocalizedException $e) {

$vastaus = [

                    ‘status’ => ‘ERROR’,

                    ‘msg’ => __(‘There was a problem with the subscription: %1’, $e->getMessage()),

                ];

} saalis (\poikkeus $e) {

$vastaus = [

                    ‘status’ => ‘ERROR’,

                    ‘msg’ => __(‘Something went wrong with the subscription.’),

                ];

}

}

return $this->resultJsonFactory->create()->setData($response);

}

}

🔥 Empfohlen:  Kuinka mainostaa uusia tuotejulkaisuja, jotka johtavat varhaiseen myyntiin