Как получить заказ в классе SenderBuilder? - PullRequest
0 голосов
/ 20 апреля 2020

Я перезаписываю класс \Magento\Sales\Model\Order\Email\SenderBuilder в своем Magento 2. Я хочу загрузить некоторые данные заказа, но ничего не получаю.

Код:

<?php
namespace Customisation\OrderEmail\Model\Order\Email;

use Magento\Framework\App\ObjectManager;
use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\Mail\Template\TransportBuilderByStore;
use Magento\Sales\Model\Order\Email\Container\IdentityInterface;
use Magento\Sales\Model\Order\Email\Container\Template;

class SenderBuilder extends \Magento\Sales\Model\Order\Email\SenderBuilder
{
    protected $templateContainer;
    protected $identityContainer;
    protected $transportBuilder;
    private $transportBuilderByStore;

    public function __construct(
        Template $templateContainer,
        IdentityInterface $identityContainer,
        TransportBuilder $transportBuilder,
        TransportBuilderByStore $transportBuilderByStore = null,

    ) {
        $this->templateContainer = $templateContainer;
        $this->identityContainer = $identityContainer;
        $this->transportBuilder = $transportBuilder;
        $this->transportBuilderByStore = $transportBuilderByStore ?: ObjectManager::getInstance()->get(
            TransportBuilderByStore::class
        );
        parent::__construct($templateContainer, $identityContainer, $transportBuilder, $this->transportBuilderByStore);

    }

    public function send()
    {
        //$custom_email = 'test@gmail.com';
        $_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $this->configureEmailTemplate();

        $this->transportBuilder->addTo(
            $this->identityContainer->getCustomerEmail(),
            $this->identityContainer->getCustomerName()
        );

        $copyTo = $this->identityContainer->getEmailCopyTo();

        if (!empty($copyTo) && $this->identityContainer->getCopyMethod() == 'bcc') {
            foreach ($copyTo as $email) {
                $this->transportBuilder->addBcc($email);
            }
        }

        if($email){
            $this->transportBuilder->addBcc($custom_email); // Added for add BCC for custom dynamic email address
            $logger->info($email);
        }

        $transport = $this->transportBuilder->getTransport();
        $transport->sendMessage();
    }
}

Я хочу получить данные заказа в этом send (). Как я могу получить идентификатор заказа или Заказ в этой функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...