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);
}
}
}