Cómo habilitar el boletín Ajax en Magento 2

Estás leyendo la publicación: Cómo habilitar el boletín Ajax en Magento 2

/**

*

*/

espacio de nombres Proveedor\Extensión\Controlador\Complemento\Suscriptor;

use Magento\Customer\Api\AccountManagementInterface como CustomerAccountManagement;

use Magento\Cliente\Modelo\Sesión;

use Magento\Customer\Model\Url como CustomerUrl;

use Magento\Framework\App\Action\Context;

use Magento\Store\Model\StoreManagerInterface;

use Magento\Newsletter\Model\SubscriberFactory;

/**

* Clase NuevaAcción

*/

clase NewAction extiende \Magento\Newsletter\Controller\Subscriber\NewAction

{

/**

* @var Gestión de cuentas de clientes

*/

protegido $ gestión de cuenta de cliente;

protegido $resultadoJsonFactory;

/**

* Inicializar dependencias.

*

* @param Contexto $contexto

* @param Fábrica de suscriptores $ Fábrica de suscriptores

* @param Sesión $clienteSesión

* @param StoreManagerInterface $storeManager

* @param CustomerUrl $clienteUrl

* @param CustomerAccountManagement $customerAccountManagement

*/

función pública __construir(

Contexto $contexto,

Fábrica de suscriptores $ Fábrica de suscriptores,

Sesión $sesióncliente,

StoreManagerInterface $storeManager,

URL del cliente $ URL del cliente,

Gestión de cuentas de clientes $ gestión de cuentas de clientes,

\Magento\Framework\Controlador\Resultado\JsonFactory $resultadoJsonFactory

)

{

$this->customerAccountManagement = $customerAccountManagement;

$this->resultJsonFactory = $resultJsonFactory;

padre::__construir(

$contexto,

$suscriptorFactory,

$sesióncliente,

$storeManager,

$URLcliente,

$administracióndecuentacliente

);

}

/**

* Recuperar la lista de campos de pedidos disponibles

*

* Matriz @return

*/

función pública aroundExecute($sujeto, $procedimiento)

{

$respuesta = [];

if ($this->getRequest()->isPost() && $this->getRequest()->getPost(’email’)) {

$email = (cadena)$this->getRequest()->getPost(’email’);

intentar {

$this->validateEmailFormat($email);

$this->validateGuestSubscription();

$this->validateEmailAvailable($email);

$status = $this->_subscriberFactory->create()->subscribe($email);

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

$respuesta = [

                        ‘status’ => ‘OK’,

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

                    ];

} demás {

$respuesta = [

                        ‘status’ => ‘OK’,

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

                    ];

}

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

$respuesta = [

                    ‘status’ => ‘ERROR’,

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

                ];

} atrapar (\Excepción $e) {

$respuesta = [

                    ‘status’ => ‘ERROR’,

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

                ];

}

}

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

}

}