Skip to content

Commit 51996a1

Browse files
committed
MC-18366: Shipping confirmation email does not have link for order tracking
1 parent 3f24171 commit 51996a1

File tree

3 files changed

+67
-3
lines changed

3 files changed

+67
-3
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Sales\Block\Email\Shipment;
9+
10+
use Magento\Framework\View\Element\Template;
11+
use Magento\Framework\View\Element\Template\Context;
12+
use Magento\Sales\Model\Order\Shipment\Track as TrackModel;
13+
use Magento\Shipping\Helper\Data as ShippingHelper;
14+
15+
/**
16+
* Shipment track info for email
17+
*/
18+
class Track extends Template
19+
{
20+
/**
21+
* @var ShippingHelper
22+
*/
23+
private $helper;
24+
25+
/**
26+
* @param Context $context
27+
* @param ShippingHelper $helper
28+
* @param array $data
29+
*/
30+
public function __construct(
31+
Context $context,
32+
ShippingHelper $helper,
33+
array $data = []
34+
) {
35+
parent::__construct($context, $data);
36+
$this->helper = $helper;
37+
}
38+
39+
/**
40+
* Get Shipping tracking URL
41+
*
42+
* @param TrackModel $track
43+
* @return string
44+
*/
45+
public function getTrackingUrl(TrackModel $track): string
46+
{
47+
return $this->helper->getTrackingPopupUrlBySalesModel($track);
48+
}
49+
50+
/**
51+
* Get Shipping tracking URL escaped
52+
*
53+
* @param TrackModel $track
54+
* @return string
55+
*/
56+
public function getTrackingUrlEscaped(TrackModel $track): string
57+
{
58+
return $this->escapeUrl($this->getTrackingUrl($track));
59+
}
60+
}

app/code/Magento/Sales/view/frontend/layout/sales_email_order_shipment_track.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
99
<update handle="sales_email_order_shipment_renderers"/>
1010
<body>
11-
<block class="Magento\Framework\View\Element\Template" name="sales.order.email.shipment.track" template="Magento_Sales::email/shipment/track.phtml"/>
11+
<block class="Magento\Sales\Block\Email\Shipment\Track" name="sales.order.email.shipment.track" template="Magento_Sales::email/shipment/track.phtml"/>
1212
</body>
1313
</page>

app/code/Magento/Sales/view/frontend/templates/email/shipment/track.phtml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
?>
7+
<?php /* @var \Magento\Sales\Block\Email\Shipment\Track $block */ ?>
88
<?php $_shipment = $block->getShipment() ?>
99
<?php
1010
/* @var \Magento\Sales\Model\Order $_order */
@@ -24,7 +24,11 @@ $_order = $block->getOrder() ?>
2424
<?php foreach ($trackCollection as $_item) : ?>
2525
<tr>
2626
<td><?= $block->escapeHtml($_item->getTitle()) ?>:</td>
27-
<td><?= $block->escapeHtml($_item->getNumber()) ?></td>
27+
<td>
28+
<a href="<?= $block->getTrackingUrlEscaped($_item) ?>" target="_blank">
29+
<?= $block->escapeHtml($_item->getNumber()) ?>
30+
</a>
31+
</td>
2832
</tr>
2933
<?php endforeach ?>
3034
</tbody>

0 commit comments

Comments
 (0)