当前位置: 技术文章>> 如何使用Magento 2将送货地址转换为HTML格式?

文章标题:如何使用Magento 2将送货地址转换为HTML格式?
  • 文章分类: Magento
  • 17619 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


在今天的Magento 2指南中,我将解释如何使用Magento 2将送货地址转换为HTML格式?

电子商务企业的送货地址信息有助于成功将订单交付给客户。但是,在您的网站上以视觉上吸引人且有组织的格式呈现此地址可以增强用户体验并提高商店的整体专业性。

让我们学习如何使用 Magento 2 将送货地址转换为 HTML 格式。

使用Magento 2将送货地址转换为HTML格式的步骤:

步骤1:在“帮助程序”文件夹中创建一个数据.php文件。

app\code\Vendor\Extension\Helper

然后添加代码,如下所示。

<?php
namespace Vendor\Extension\Helper;
 
use Magento\Framework\App\Helper\AbstractHelper;
 
class Data extends AbstractHelper
{
   protected $orderRepository;
   protected $_addressConfig;
 
   public function __construct(
         \Magento\Sales\Api\OrderRepositoryInterface $orderRepository,
         \Magento\Customer\Model\Address\Config $addressConfig
         )
   {
       $this->orderRepository = $orderRepository;
       $this->_addressConfig = $addressConfig;
   }
   
   public function _getAddressHtml($orderId)
    {
        try {
            $order = $this->orderRepository->get($orderId);
        } catch (NoSuchEntityException $e) {
            throw new \Magento\Framework\Exception\LocalizedException(__('This order no longer exists.'));
        }
        $address = $order->getShippingAddress();
        $renderer = $this->_addressConfig->getFormatByCode('html')->getRenderer();
        return $renderer->renderArray($address);
    }
}

第2步: 现在,在 地址.php 在 块 文件夹。

app\code\Vendor\Extension\Block

然后添加代码,如下所示。

<?php
 
namespace Vendor\Extension\Block;
use Vendor\Extension\Helper\Data as Helper;
 
class Address extends \Magento\Framework\View\Element\Template
{
    /**
     * @param \Magento\Backend\Block\Template\Context $context
     * @param \Magento\Framework\Registry             $registry
     * @param \Magento\Framework\Data\FormFactory     $formFactory
     * @param array                                   $data
     */
     
     protected $helper;
 
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\Framework\Data\FormFactory $formFactory,
         Helper $helper,
        array $data = []
    )
    {    
       parent::__construct($context, $data);
       $this->helper = $helper;
    }
 
    public function getAddressHtml($orderId)
    {
       return $this->helper->_getAddressHtml($orderId);
       
    }
}

步骤3:然后,在布局文件夹中创建一个布局文件。

Vendor/Extension/view/frontend/layout/your_layout_file.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 template="Vendor_Extension::template.phtml" class="Vendor\Extension\Block\Address" name="address.html"/>
        </referenceContainer>
    </body>
</page>

步骤4:现在,在模板文件夹中创建一个t emplate.phtml文件

Vendor/Extension/view/frontend/templates/template.phtml

然后添加代码,如下所示。

<?php
    $orderId = 1;
    $shippingAddress = $block->getAddressHtml($orderId);
    $shippingFormat = strip_tags($shippingAddress);
    echo $shippingFormat;   
?>

结论:

通过执行以下步骤,您可以轻松修改送货地址显示以匹配商店的设计和品牌,从而提供更加精致和专业的在线购物体验。您还可以在Magento 2的订单网格中添加送货地址详细信息。


推荐文章