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

问题描述

如何在发送订单之前获取当前订单ID我知道如何获取一个订单ID,但是在提交订单之前获取当前订单ID,并且我正在自己的模块上工作

解决方法

您可以为此使用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...
    }
}