Как получить идентификатор сущности (идентификатор заказа) в успешном phtml
В моем success.phtml
, $block->getvieworderurl() дает URL-адрес заказа с идентификатором заказа (идентификатор сущности).
dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Success.php
/продажи/заказ/просмотр/идентификатор заказа/173569/
Как получить только этот идентификатор заказа - 173569
в success.phtml.
Я не вижу никаких функций в success.php
1 answers
Вы можете попробовать это, чтобы получить order Id
в одиночку:
$ блокировать->Получить идентификатор()
ОБНОВЛЕНИЕ:
Вы можете переопределить файл блокировки успешной проверки одной страницы с помощью preference
и определить свой собственный метод получения order Id
.
Попробуйте это:
В файле di.xml
вашего пользовательского модуля добавьте следующее:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Checkout\Block\Onepage\Success" type="Vendor\Module\Block\Onepage\Success" />
</config>
Теперь создайте Success.php
Файл блокировки в папке Vendor\Module\Block\Onepage
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Vendor\Module\Block\Onepage;
use Magento\Customer\Model\Context;
use Magento\Sales\Model\Order;
/**
* One page checkout success page
*
* @api
* @since 100.0.2
*/
class Success extends \Magento\Framework\View\Element\Template
{
/**
* @var \Magento\Checkout\Model\Session
*/
protected $_checkoutSession;
/**
* @var \Magento\Sales\Model\Order\Config
*/
protected $_orderConfig;
/**
* @var \Magento\Framework\App\Http\Context
*/
protected $httpContext;
/**
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Checkout\Model\Session $checkoutSession
* @param \Magento\Sales\Model\Order\Config $orderConfig
* @param \Magento\Framework\App\Http\Context $httpContext
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\Sales\Model\Order\Config $orderConfig,
\Magento\Framework\App\Http\Context $httpContext,
array $data = []
) {
parent::__construct($context, $data);
$this->_checkoutSession = $checkoutSession;
$this->_orderConfig = $orderConfig;
$this->_isScopePrivate = true;
$this->httpContext = $httpContext;
}
/**
* Render additional order information lines and return result html
*
* @return string
*/
public function getAdditionalInfoHtml()
{
return $this->_layout->renderElement('order.success.additional.info');
}
/**
* Initialize data and prepare it for output
*
* @return string
*/
protected function _beforeToHtml()
{
$this->prepareBlockData();
return parent::_beforeToHtml();
}
/**
* Prepares block data
*
* @return void
*/
protected function prepareBlockData()
{
$order = $this->_checkoutSession->getLastRealOrder();
$this->addData(
[
'is_order_visible' => $this->isVisible($order),
'view_order_url' => $this->getUrl(
'sales/order/view/',
['order_id' => $order->getEntityId()]
),
'print_url' => $this->getUrl(
'sales/order/print',
['order_id' => $order->getEntityId()]
),
'can_print_order' => $this->isVisible($order),
'can_view_order' => $this->canViewOrder($order),
'order_id' => $order->getIncrementId()
]
);
}
/**
* Is order visible
*
* @param Order $order
* @return bool
*/
protected function isVisible(Order $order)
{
return !in_array(
$order->getStatus(),
$this->_orderConfig->getInvisibleOnFrontStatuses()
);
}
/**
* Can view order
*
* @param Order $order
* @return bool
*/
protected function canViewOrder(Order $order)
{
return $this->httpContext->getValue(Context::CONTEXT_AUTH)
&& $this->isVisible($order);
}
/**
* @return string
* @since 100.2.0
*/
public function getContinueUrl()
{
return $this->_storeManager->getStore()->getBaseUrl();
}
/**
* @return string
* getOrigId
*/
public function getOrigId()
{
return $this->_checkoutSession->getLastRealOrder()->getEntityId();
}
}
Тогда теперь вы можете получить Order Id(Entity Id)
в своем .phtml
шаблон, подобный этому:
$block->getOrigId()