Skip to content

Commit 534f1ca

Browse files
author
Logvin, Michael(mlogvin)
committed
Merge pull request #273 from magento-firedrakes/bugfixes
[Firedrakes] Bugfixes
2 parents a60d492 + bd3f273 commit 534f1ca

19 files changed

+533
-198
lines changed

app/code/Magento/Sales/Model/Order/Email/Sender.php

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Magento\Sales\Model\Order;
99
use Magento\Sales\Model\Order\Email\Container\IdentityInterface;
1010
use Magento\Sales\Model\Order\Email\Container\Template;
11+
use Magento\Sales\Model\Order\Address\Renderer;
1112

1213
abstract class Sender
1314
{
@@ -31,22 +32,30 @@ abstract class Sender
3132
*/
3233
protected $logger;
3334

35+
/**
36+
* @var Renderer
37+
*/
38+
protected $addressRenderer;
39+
3440
/**
3541
* @param Template $templateContainer
3642
* @param IdentityInterface $identityContainer
3743
* @param SenderBuilderFactory $senderBuilderFactory
3844
* @param \Psr\Log\LoggerInterface $logger
45+
* @param Renderer $addressRenderer
3946
*/
4047
public function __construct(
4148
Template $templateContainer,
4249
IdentityInterface $identityContainer,
4350
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
44-
\Psr\Log\LoggerInterface $logger
51+
\Psr\Log\LoggerInterface $logger,
52+
Renderer $addressRenderer
4553
) {
4654
$this->templateContainer = $templateContainer;
4755
$this->identityContainer = $identityContainer;
4856
$this->senderBuilderFactory = $senderBuilderFactory;
4957
$this->logger = $logger;
58+
$this->addressRenderer = $addressRenderer;
5059
}
5160

5261
/**
@@ -118,4 +127,24 @@ protected function getTemplateOptions()
118127
'store' => $this->identityContainer->getStore()->getStoreId()
119128
];
120129
}
130+
131+
/**
132+
* @param Order $order
133+
* @return string|null
134+
*/
135+
protected function getFormattedShippingAddress($order)
136+
{
137+
return $order->getIsVirtual()
138+
? null
139+
: $this->addressRenderer->format($order->getShippingAddress(), 'html');
140+
}
141+
142+
/**
143+
* @param Order $order
144+
* @return string|null
145+
*/
146+
protected function getFormattedBillingAddress($order)
147+
{
148+
return $this->addressRenderer->format($order->getBillingAddress(), 'html');
149+
}
121150
}

app/code/Magento/Sales/Model/Order/Email/Sender/CreditmemoCommentSender.php

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function __construct(
4646
Renderer $addressRenderer,
4747
ManagerInterface $eventManager
4848
) {
49-
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
49+
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
5050
$this->addressRenderer = $addressRenderer;
5151
$this->eventManager = $eventManager;
5252
}
@@ -62,33 +62,22 @@ public function __construct(
6262
public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
6363
{
6464
$order = $creditmemo->getOrder();
65-
if ($order->getShippingAddress()) {
66-
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
67-
} else {
68-
$formattedShippingAddress = '';
69-
}
70-
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
71-
72-
$transport = new \Magento\Framework\Object(
73-
['template_vars' =>
74-
[
75-
'order' => $order,
76-
'creditmemo' => $creditmemo,
77-
'comment' => $comment,
78-
'billing' => $order->getBillingAddress(),
79-
'store' => $order->getStore(),
80-
'formattedShippingAddress' => $formattedShippingAddress,
81-
'formattedBillingAddress' => $formattedBillingAddress,
82-
]
83-
]
84-
);
65+
$transport = [
66+
'order' => $order,
67+
'creditmemo' => $creditmemo,
68+
'comment' => $comment,
69+
'billing' => $order->getBillingAddress(),
70+
'store' => $order->getStore(),
71+
'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
72+
'formattedBillingAddress' => $this->getFormattedBillingAddress($order),
73+
];
8574

8675
$this->eventManager->dispatch(
8776
'email_creditmemo_comment_set_template_vars_before',
8877
['sender' => $this, 'transport' => $transport]
8978
);
9079

91-
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
80+
$this->templateContainer->setTemplateVars($transport);
9281

9382
return $this->checkAndSend($order, $notify);
9483
}

app/code/Magento/Sales/Model/Order/Email/Sender/CreditmemoSender.php

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ public function __construct(
6767
CreditmemoIdentity $identityContainer,
6868
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
6969
\Psr\Log\LoggerInterface $logger,
70+
Renderer $addressRenderer,
7071
PaymentHelper $paymentHelper,
7172
CreditmemoResource $creditmemoResource,
7273
\Magento\Framework\App\Config\ScopeConfigInterface $globalConfig,
73-
Renderer $addressRenderer,
7474
ManagerInterface $eventManager
7575
) {
76-
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
76+
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
7777
$this->paymentHelper = $paymentHelper;
7878
$this->creditmemoResource = $creditmemoResource;
7979
$this->globalConfig = $globalConfig;
@@ -102,37 +102,24 @@ public function send(Creditmemo $creditmemo, $forceSyncMode = false)
102102

103103
if (!$this->globalConfig->getValue('sales_email/general/async_sending') || $forceSyncMode) {
104104
$order = $creditmemo->getOrder();
105-
106-
if ($order->getShippingAddress()) {
107-
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
108-
} else {
109-
$formattedShippingAddress = '';
110-
}
111-
112-
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
113-
114-
$transport = new \Magento\Framework\Object(
115-
['template_vars' =>
116-
[
117-
'order' => $order,
118-
'creditmemo' => $creditmemo,
119-
'comment' => $creditmemo->getCustomerNoteNotify()
120-
? $creditmemo->getCustomerNote() : '',
121-
'billing' => $order->getBillingAddress(),
122-
'payment_html' => $this->getPaymentHtml($order),
123-
'store' => $order->getStore(),
124-
'formattedShippingAddress' => $formattedShippingAddress,
125-
'formattedBillingAddress' => $formattedBillingAddress
126-
]
127-
]
128-
);
105+
106+
$transport = [
107+
'order' => $order,
108+
'creditmemo' => $creditmemo,
109+
'comment' => $creditmemo->getCustomerNoteNotify() ? $creditmemo->getCustomerNote() : '',
110+
'billing' => $order->getBillingAddress(),
111+
'payment_html' => $this->getPaymentHtml($order),
112+
'store' => $order->getStore(),
113+
'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
114+
'formattedBillingAddress' => $this->getFormattedBillingAddress($order),
115+
];
129116

130117
$this->eventManager->dispatch(
131118
'email_creditmemo_set_template_vars_before',
132119
['sender' => $this, 'transport' => $transport]
133120
);
134121

135-
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
122+
$this->templateContainer->setTemplateVars($transport);
136123

137124
if ($this->checkAndSend($order)) {
138125
$creditmemo->setEmailSent(true);

app/code/Magento/Sales/Model/Order/Email/Sender/InvoiceCommentSender.php

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function __construct(
4646
Renderer $addressRenderer,
4747
ManagerInterface $eventManager
4848
) {
49-
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
49+
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
5050
$this->addressRenderer = $addressRenderer;
5151
$this->eventManager = $eventManager;
5252
}
@@ -62,33 +62,22 @@ public function __construct(
6262
public function send(Invoice $invoice, $notify = true, $comment = '')
6363
{
6464
$order = $invoice->getOrder();
65-
if ($order->getShippingAddress()) {
66-
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
67-
} else {
68-
$formattedShippingAddress = '';
69-
}
70-
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
71-
72-
$transport = new \Magento\Framework\Object(
73-
['template_vars' =>
74-
[
75-
'order' => $order,
76-
'invoice' => $invoice,
77-
'comment' => $comment,
78-
'billing' => $order->getBillingAddress(),
79-
'store' => $order->getStore(),
80-
'formattedShippingAddress' => $formattedShippingAddress,
81-
'formattedBillingAddress' => $formattedBillingAddress,
82-
]
83-
]
84-
);
65+
$transport = [
66+
'order' => $order,
67+
'invoice' => $invoice,
68+
'comment' => $comment,
69+
'billing' => $order->getBillingAddress(),
70+
'store' => $order->getStore(),
71+
'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
72+
'formattedBillingAddress' => $this->getFormattedBillingAddress($order),
73+
];
8574

8675
$this->eventManager->dispatch(
8776
'email_invoice_comment_set_template_vars_before',
8877
['sender' => $this, 'transport' => $transport]
8978
);
9079

91-
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
80+
$this->templateContainer->setTemplateVars($transport);
9281

9382
return $this->checkAndSend($order, $notify);
9483
}

app/code/Magento/Sales/Model/Order/Email/Sender/InvoiceSender.php

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ public function __construct(
6767
InvoiceIdentity $identityContainer,
6868
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
6969
\Psr\Log\LoggerInterface $logger,
70+
Renderer $addressRenderer,
7071
PaymentHelper $paymentHelper,
7172
InvoiceResource $invoiceResource,
7273
\Magento\Framework\App\Config\ScopeConfigInterface $globalConfig,
73-
Renderer $addressRenderer,
7474
ManagerInterface $eventManager
7575
) {
76-
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
76+
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
7777
$this->paymentHelper = $paymentHelper;
7878
$this->invoiceResource = $invoiceResource;
7979
$this->globalConfig = $globalConfig;
@@ -103,35 +103,23 @@ public function send(Invoice $invoice, $forceSyncMode = false)
103103
if (!$this->globalConfig->getValue('sales_email/general/async_sending') || $forceSyncMode) {
104104
$order = $invoice->getOrder();
105105

106-
if ($order->getShippingAddress()) {
107-
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
108-
} else {
109-
$formattedShippingAddress = '';
110-
}
111-
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
112-
113-
$transport = new \Magento\Framework\Object(
114-
['template_vars' =>
115-
[
116-
'order' => $order,
117-
'invoice' => $invoice,
118-
'comment' => $invoice->getCustomerNoteNotify() ? $invoice->getCustomerNote()
119-
: '',
120-
'billing' => $order->getBillingAddress(),
121-
'payment_html' => $this->getPaymentHtml($order),
122-
'store' => $order->getStore(),
123-
'formattedShippingAddress' => $formattedShippingAddress,
124-
'formattedBillingAddress' => $formattedBillingAddress
125-
]
126-
]
127-
);
106+
$transport = [
107+
'order' => $order,
108+
'invoice' => $invoice,
109+
'comment' => $invoice->getCustomerNoteNotify() ? $invoice->getCustomerNote() : '',
110+
'billing' => $order->getBillingAddress(),
111+
'payment_html' => $this->getPaymentHtml($order),
112+
'store' => $order->getStore(),
113+
'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
114+
'formattedBillingAddress' => $this->getFormattedBillingAddress($order)
115+
];
128116

129117
$this->eventManager->dispatch(
130118
'email_invoice_set_template_vars_before',
131119
['sender' => $this, 'transport' => $transport]
132120
);
133121

134-
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
122+
$this->templateContainer->setTemplateVars($transport);
135123

136124
if ($this->checkAndSend($order)) {
137125
$invoice->setEmailSent(true);

app/code/Magento/Sales/Model/Order/Email/Sender/OrderCommentSender.php

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function __construct(
4545
Renderer $addressRenderer,
4646
ManagerInterface $eventManager
4747
) {
48-
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
48+
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger, $addressRenderer);
4949
$this->addressRenderer = $addressRenderer;
5050
$this->eventManager = $eventManager;
5151
}
@@ -60,32 +60,21 @@ public function __construct(
6060
*/
6161
public function send(Order $order, $notify = true, $comment = '')
6262
{
63-
if ($order->getShippingAddress()) {
64-
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
65-
} else {
66-
$formattedShippingAddress = '';
67-
}
68-
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
69-
70-
$transport = new \Magento\Framework\Object(
71-
['template_vars' =>
72-
[
73-
'order' => $order,
74-
'comment' => $comment,
75-
'billing' => $order->getBillingAddress(),
76-
'store' => $order->getStore(),
77-
'formattedShippingAddress' => $formattedShippingAddress,
78-
'formattedBillingAddress' => $formattedBillingAddress,
79-
]
80-
]
81-
);
63+
$transport = [
64+
'order' => $order,
65+
'comment' => $comment,
66+
'billing' => $order->getBillingAddress(),
67+
'store' => $order->getStore(),
68+
'formattedShippingAddress' => $this->getFormattedShippingAddress($order),
69+
'formattedBillingAddress' => $this->getFormattedBillingAddress($order),
70+
];
8271

8372
$this->eventManager->dispatch(
8473
'email_order_comment_set_template_vars_before',
8574
['sender' => $this, 'transport' => $transport]
8675
);
8776

88-
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
77+
$this->templateContainer->setTemplateVars($transport);
8978

9079
return $this->checkAndSend($order, $notify);
9180
}

0 commit comments

Comments
 (0)