Magento 2-在成功页面上获取订单预览

g5wx

下订单后,是否可以在成功页面上显示订单信息?成功phtml当前仅显示订单号信息。结构:

?>
<?php /** @var $block \Magento\Checkout\Block\Onepage\Success */ ?>
<div class="checkout-success">
    <?php if ($block->getOrderId()):?>
        <?php if ($block->getCanViewOrder()) :?>
            <p><?php echo __('Your order number is: %1.', sprintf('<a href="%s" class="order-number"><strong>%s</strong></a>', $block->escapeHtml($block->getViewOrderUrl()), $block->escapeHtml($block->getOrderId()))) ?></p>
        <?php  else :?>
            <p><?php echo __('Your order # is: <span>%1</span>.', $block->escapeHtml($block->getOrderId())) ?></p>
        <?php endif;?>
            <p><?php /* @escapeNotVerified */ echo __('We\'ll email you an order confirmation with details and tracking info.') ?></p>
    <?php endif;?>

    <?php echo $block->getAdditionalInfoHtml() ?>

    <div class="actions-toolbar">
        <div class="primary">
            <a class="action primary continue" href="<?php /* @escapeNotVerified */ echo $block->getUrl() ?>"><span><?php /* @escapeNotVerified */ echo __('Continue Shopping') ?></span></a>
        </div>
    </div>
</div>

我尝试getOrder() ?>从销售模块调用该函数:Module_Sales/view/frontend/templates/order/view.phtml但这不起作用。

Timon de Groot

我将做完全相同的事情,因此我将记录每个步骤。

覆盖块

创建文件app/code/Vendor/Module/etc/di.xml并添加以下内容:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../vendor/magento/framework/ObjectManager/etc/config.xsd">
    <preference for="Magento\Checkout\Block\Onepage\Success" type="Vendor\Module\Block\Success"/>
</config>

创建文件app/code/Vendor/Module/Block/Success.php并添加以下内容:

<?php

namespace Vendor\Module\Block;

class Success extends \Magento\Checkout\Block\Onepage\Success {

    public function getOrder() {
        return $this->_checkoutSession->getLastRealOrder();
    }

}

覆盖模板

创建文件app/code/Vendor/Module/view/frontend/layout/checkout_onepage_success.xml并添加以下内容:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="checkout.success" template="Your_Module::checkout/success.phtml"/>
    </body>
</page>

创建文件app/code/Vendor/Module/view/frontend/templates/checkout/success.phtml并添加以下内容:

<?php /** @var $block \Vendor\Module\Block\Success */ ?>
<div class="checkout-success">
    <?php if ($block->getOrderId()):?>
        <?php if ($block->getCanViewOrder()) :?>
            <p><?php echo __('Your order number is: %1.', sprintf('<a href="%s" class="order-number"><strong>%s</strong></a>', $block->escapeHtml($block->getViewOrderUrl()), $block->escapeHtml($block->getOrderId()))) ?></p>
        <?php else: ?>
            <p><?php echo __('Your order # is: <span>%1</span>.', $block->escapeHtml($block->getOrderId())) ?></p>
        <?php endif; ?>

        <!-- BEGIN VENDOR_MODULE CUSTOM -->
        <p><?php echo __('You ordered %1 items.', (int) $block->getOrder()->getTotalQtyOrdered()) ?></p>
        <!-- END VENDOR_MODULE CUSTOM -->

        <p><?php /* @escapeNotVerified */ echo __('We\'ll email you an order confirmation with details and tracking info.') ?></p>
    <?php endif; ?>

    <?php echo $block->getAdditionalInfoHtml() ?>

    <div class="actions-toolbar">
        <div class="primary">
            <a class="action primary continue" href="<?php /* @escapeNotVerified */ echo $block->getUrl() ?>"><span><?php /* @escapeNotVerified */ echo __('Continue Shopping') ?></span></a>
        </div>
    </div>
</div>

就是这样,希望我能对您有所帮助。

编辑

您可能想大量刷新结帐/成功页面,因此要解决该问题,请归档app/code/Magento/Checkout/Controller/Onepage/Success.php并在第22行进行更改。

$session->clearQuote(); 

// $session->clearQuote();

这样,打开页面时您的报价将不会被清除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 magento 2 的结账页面上获取步骤名称?

来自分类Dev

Magento 2管理页面内容

来自分类Dev

如何在magento 2中获取订单收集对象

来自分类Dev

如何在magento的类别页面上检索所选的订单属性?

来自分类Dev

如何在magento的类别页面上检索所选的订单属性?

来自分类Dev

Magento:在结帐成功页面上仅显示简单的产品

来自分类Dev

在magento结帐成功页面上显示属性(制造,尺寸,颜色)

来自分类Dev

在成功页面上发送Magento电子邮件

来自分类Dev

从magento的2个表中获取数据

来自分类Dev

无法在magento2中获取jsonEncode

来自分类Dev

Magento 2-获取scopeconfig值

来自分类Dev

向magento订单视图页面部分添加2个更多的属性值

来自分类Dev

管理页面上的Magento 404

来自分类Dev

如何获取magento2中的所有订单付款方式信息

来自分类Dev

如何获取magento2中的所有订单付款方式信息

来自分类Dev

Magento 2:通过脚本发送订单确认电子邮件

来自分类Dev

通过Magento 2中的Rest API更新订单状态

来自分类Dev

如何在 Magento2 的订单网格上添加 MassAction?

来自分类Dev

订单确认电子邮件翻译问题 Magento 2

来自分类Dev

Magento 2 rest api 订单状态总是更新以完成

来自分类Dev

Magento 检测结帐成功页面

来自分类Dev

成功获取Magento订单ID,订单价值和优惠券代码

来自分类Dev

Magento在成功页面中获取总订购商品的数量

来自分类Dev

如何删除 Magento 2 产品页面中的数量框

来自分类Dev

Magento 2 更改基本 URL 会破坏页面

来自分类Dev

Magento结帐成功页面:如果订单中的商品不可退回,则显示消息

来自分类Dev

Magento 2:在 CMS 页面中获取商店所在国家/地区的全名

来自分类Dev

获取Magento2的购物车详细信息

来自分类Dev

按magento 2中的产品属性组获取产品属性

Related 相关文章

  1. 1

    如何在 magento 2 的结账页面上获取步骤名称?

  2. 2

    Magento 2管理页面内容

  3. 3

    如何在magento 2中获取订单收集对象

  4. 4

    如何在magento的类别页面上检索所选的订单属性?

  5. 5

    如何在magento的类别页面上检索所选的订单属性?

  6. 6

    Magento:在结帐成功页面上仅显示简单的产品

  7. 7

    在magento结帐成功页面上显示属性(制造,尺寸,颜色)

  8. 8

    在成功页面上发送Magento电子邮件

  9. 9

    从magento的2个表中获取数据

  10. 10

    无法在magento2中获取jsonEncode

  11. 11

    Magento 2-获取scopeconfig值

  12. 12

    向magento订单视图页面部分添加2个更多的属性值

  13. 13

    管理页面上的Magento 404

  14. 14

    如何获取magento2中的所有订单付款方式信息

  15. 15

    如何获取magento2中的所有订单付款方式信息

  16. 16

    Magento 2:通过脚本发送订单确认电子邮件

  17. 17

    通过Magento 2中的Rest API更新订单状态

  18. 18

    如何在 Magento2 的订单网格上添加 MassAction?

  19. 19

    订单确认电子邮件翻译问题 Magento 2

  20. 20

    Magento 2 rest api 订单状态总是更新以完成

  21. 21

    Magento 检测结帐成功页面

  22. 22

    成功获取Magento订单ID,订单价值和优惠券代码

  23. 23

    Magento在成功页面中获取总订购商品的数量

  24. 24

    如何删除 Magento 2 产品页面中的数量框

  25. 25

    Magento 2 更改基本 URL 会破坏页面

  26. 26

    Magento结帐成功页面:如果订单中的商品不可退回,则显示消息

  27. 27

    Magento 2:在 CMS 页面中获取商店所在国家/地区的全名

  28. 28

    获取Magento2的购物车详细信息

  29. 29

    按magento 2中的产品属性组获取产品属性

热门标签

归档