how to display purchase order number in customer dashboard frontend?
-
13-02-2021 - |
Solution
You need to override recent.phtml
template files in Magento_Sales
module.
To fetch the purchase order number in the recent.phtml
you can use the following code
$_order->getPayment()->getPoNumber()
You can try following code and modify it according to your requirement.
app/code/Anshu/Custom/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Anshu_Custom" setup_version="1.0.0">
<sequence>
<module name="Magento_Sales"/>
</sequence>
</module>
</config>
app/code/Anshu/Custom/registration.php
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Anshu_Custom',
__DIR__
);
app/code/Anshu/Custom/view/frontend/layout/customer_account_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Magento\Sales\Block\Order\Recent" name="customer_account_dashboard_top" template="Anshu_Custom::recent.phtml"/>
</referenceContainer>
</body>
</page>
app/code/Anshu/Custom/view/frontend/templates/recent.phtml
<div class="block block-dashboard-orders">
<?php
$_orders = $block->getOrders();
$count = count($_orders);
?>
<div class="block-title order">
<strong><?= /* @escapeNotVerified */ __('Recent Orders') ?></strong>
<?php if ($count > 0): ?>
<a class="action view" href="<?= /* @escapeNotVerified */ $block->getUrl('sales/order/history') ?>">
<span><?= /* @escapeNotVerified */ __('View All') ?></span>
</a>
<?php endif; ?>
</div>
<div class="block-content">
<?= $block->getChildHtml() ?>
<?php if ($count > 0): ?>
<div class="table-wrapper orders-recent">
<table class="data table table-order-items recent" id="my-orders-table">
<caption class="table-caption"><?= /* @escapeNotVerified */ __('Recent Orders') ?></caption>
<thead>
<tr>
<th scope="col" class="col id"><?= /* @escapeNotVerified */ __('Order #') ?></th>
<th scope="col" class="col id"><?= /* @escapeNotVerified */ __('Purchase Order #') ?></th>
<th scope="col" class="col date"><?= /* @escapeNotVerified */ __('Date') ?></th>
<th scope="col" class="col shipping"><?= /* @escapeNotVerified */ __('Ship To') ?></th>
<th scope="col" class="col total"><?= /* @escapeNotVerified */ __('Order Total') ?></th>
<th scope="col" class="col status"><?= /* @escapeNotVerified */ __('Status') ?></th>
<th scope="col" class="col actions"><?= /* @escapeNotVerified */ __('Action') ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($_orders as $_order): ?>
<tr>
<td data-th="<?= $block->escapeHtml(__('Order #')) ?>" class="col id"><?= /* @escapeNotVerified */ $_order->getRealOrderId() ?></td>
<td data-th="<?= $block->escapeHtml(__('Purchase Order #')) ?>" class="col purchaseorder"><?= /* @escapeNotVerified */ $_order->getPayment()->getPoNumber() ?></td>
<td data-th="<?= $block->escapeHtml(__('Date')) ?>" class="col date"><?= /* @escapeNotVerified */ $block->formatDate($_order->getCreatedAt()) ?></td>
<td data-th="<?= $block->escapeHtml(__('Ship To')) ?>" class="col shipping"><?= $_order->getShippingAddress() ? $block->escapeHtml($_order->getShippingAddress()->getName()) : ' ' ?></td>
<td data-th="<?= $block->escapeHtml(__('Order Total')) ?>" class="col total"><?= /* @escapeNotVerified */ $_order->formatPrice($_order->getGrandTotal()) ?></td>
<td data-th="<?= $block->escapeHtml(__('Status')) ?>" class="col status"><?= /* @escapeNotVerified */ $_order->getStatusLabel() ?></td>
<td data-th="<?= $block->escapeHtml(__('Actions')) ?>" class="col actions">
<a href="<?= /* @escapeNotVerified */ $block->getViewUrl($_order) ?>" class="action view">
<span><?= /* @escapeNotVerified */ __('View Order') ?></span>
</a>
<?php if ($this->helper('Magento\Sales\Helper\Reorder')->canReorder($_order->getEntityId())) : ?>
<a href="#" data-post='<?php /* @escapeNotVerified */ echo
$this->helper(\Magento\Framework\Data\Helper\PostHelper::class)
->getPostData($block->getReorderUrl($_order))
?>' class="action order">
<span><?= /* @escapeNotVerified */ __('Reorder') ?></span>
</a>
<?php endif ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php else: ?>
<div class="message info empty"><span><?= /* @escapeNotVerified */ __('You have placed no orders.') ?></span></div>
<?php endif; ?>
</div>
</div>
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange