Magento 2在结帐页面phtml中发送到支付网关之前获取订单ID?

Posted

技术标签:

【中文标题】Magento 2在结帐页面phtml中发送到支付网关之前获取订单ID?【英文标题】:Magento 2 get order ID before sending to payment gateway in checkout page phtml? 【发布时间】:2020-11-06 10:40:29 【问题描述】:

如何在发送订单之前获取当前订单 ID 我知道如何获取最后一个订单 ID,但我在提交订单之前获取当前订单 ID,我正在开发自己的模块

【问题讨论】:

【参考方案1】:

您可以为此利用 Magento 2 事件。不确定 sales_order_place_before sales_order_place_after 是否最适合您的需求,但代码如下所示:

在你模块的events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="sales_order_place_after">
        <observer name="observername" instance="Vendor\Module\Observer\YourClass" />
    </event>
</config>

在YourClass.php

<?php
namespace NBG\Mailtrigger\Observer;
class YourClass implements \Magento\Framework\Event\ObserverInterface

    public function execute(\Magento\Framework\Event\Observer $observer)
    
        $order = $observer->getEvent()->getOrder();
        $orderIncrementId = $order->getIncrementId();
        // your logic...
    

【讨论】:

以上是关于Magento 2在结帐页面phtml中发送到支付网关之前获取订单ID?的主要内容,如果未能解决你的问题,请参考以下文章

属性增值购物车结帐和订单页面

Magento 2 - 如何在另一个 phtml 文件、xml 布局、静态块和 cms 页面中调用自定义 phtml 文件?

Magento 获得选择的运输和计费方式地址字段

在结帐期间在 magento 支付模块中获取当前 orderId

Magento购物车页面中的贝宝支付标准?

获取magento类别view.phtml的特定属性