1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Model\Order\Email\Sender;
- use Magento\Sales\Model\Order;
- use Magento\Sales\Model\Order\Email\Container\InvoiceCommentIdentity;
- use Magento\Sales\Model\Order\Email\Container\Template;
- use Magento\Sales\Model\Order\Email\NotifySender;
- use Magento\Sales\Model\Order\Invoice;
- use Magento\Sales\Model\Order\Address\Renderer;
- use Magento\Framework\Event\ManagerInterface;
- use Magento\Framework\DataObject;
- /**
- * Class InvoiceCommentSender
- */
- class InvoiceCommentSender extends NotifySender
- {
- /**
- * @var Renderer
- */
- protected $addressRenderer;
- /**
- * Application Event Dispatcher
- *
- * @var ManagerInterface
- */
- protected $eventManager;
- /**
- * @param Template $templateContainer
- * @param InvoiceCommentIdentity $identityContainer
- * @param Order\Email\SenderBuilderFactory $senderBuilderFactory
- * @param \Psr\Log\LoggerInterface $logger
- * @param Renderer $addressRenderer
- * @param ManagerInterface $eventManager
- */
- public function __construct(
- Template $templateContainer,
- InvoiceCommentIdentity $identityContainer,
- \Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
- \Psr\Log\LoggerInterface $logger,
- Renderer $addressRenderer,
- ManagerInterface $eventManager
- ) {
- parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
- $this->addressRenderer = $addressRenderer;
- $this->eventManager = $eventManager;
- }
- /**
- * Send email to customer
- *
- * @param Invoice $invoice
- * @param bool $notify
- * @param string $comment
- * @return bool
- */
- public function send(Invoice $invoice, $notify = true, $comment = '')
- {
- $order = $invoice->getOrder();
- $transport = [
- 'order' => $order,
- 'invoice' => $invoice,
- 'comment' => $comment,
- 'billing' => $order->getBillingAddress(),
- 'store' => $order->getStore(),
- 'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
- 'formattedBillingAddress' => $this->getFormattedBillingAddress($order),
- ];
- $transportObject = new DataObject($transport);
- /**
- * Event argument `transport` is @deprecated. Use `transportObject` instead.
- */
- $this->eventManager->dispatch(
- 'email_invoice_comment_set_template_vars_before',
- ['sender' => $this, 'transport' => $transportObject->getData(), 'transportObject' => $transportObject]
- );
- $this->templateContainer->setTemplateVars($transportObject->getData());
- return $this->checkAndSend($order, $notify);
- }
- }
|