Cómo enviar un correo electrónico de confirmación de pedido de Magento 2 después de un pago exitoso

Estás leyendo la publicación: Cómo enviar un correo electrónico de confirmación de pedido de Magento 2 después de un pago exitoso

espacio de nombres [Package_Name]\[Module_Name]\Observador;

use Magento\Framework\Event\ObserverInterface;

clase SendMailOnOrderSuccess implementa ObserverInterface

{

/**

* @var\Magento\Sales\Model\OrderFactory

*/

modelo de pedido de $ protegido;

/**

* @var \Magento\Sales\Model\Order\Email\Sender\OrderSender

*/

$orderSender protegido;

/**

* @var\Magento\Checkout\Model\Session $checkoutSession

*/

$checkoutSession protegida;

/**

* @param \Magento\Sales\Model\OrderFactory $orderModel

* @param \Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender

* @param \Magento\Checkout\Model\Session $checkoutSession

*

* @codeCoverageIgnorar

*/

función pública __construir(

\Magento\Sales\Model\OrderFactory $orderModel,

\Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender,

\Magento\Checkout\Model\Session $checkoutSession

)

{

$this->orderModel = $orderModel;

$this->orderSender = $orderSender;

$this->checkoutSession = $checkoutSession;

}

/**

* @param \Magento\Framework\Event\Observador $observador

* @retorno nulo

*/

función pública ejecutar (\Magento\Framework\Event\Observer $observer)

{

$orderIds = $observador->getEvent()->getOrderIds();

si (cuenta ($ ID de pedido))

{

$this->checkoutSession->setForceOrderMailSentOnSuccess(true);

$order = $this->orderModel->create()->load($orderIds[0]);

$this->orderSender->send($order, true);

}

}

}

🔥 Recomendado:  Cómo vender libros en Amazon [2023 Guide]