마 젠토 2.1
아래 언급 된 블록은 이제 Magento\Checkout\Block\Onepage\Success
마 젠토 2.0
이 페이지에서 기본적으로 검색 할 수있는 유일한 것은에 getRealOrderId()
정의 된 메소드를 사용하는 주문 ID 입니다.Magento\Checkout\Block\Success
따라서 주문 ID를 얻으려면 템플릿에서 다음을 호출하면됩니다.
$block->getRealOrderId();
그러나 나는 그것이 당신이 필요로하는 것이 아니라는 것을 이해합니다.
이 경우 객체 관리자를 직접 사용할 수 있지만 권장되지 않습니다. 이 블록의 우선 순위를 정의하려면 사용자 지정 모듈을 사용해야합니다 .
에서 app/code/Vendor/Module/etc/frontend/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\Success"
type="Vendor\Module\Block\Checkout\Success"/>
</config>
그런 다음 app/code/Vendor/Module/Block/Checkout/Success.php
:
<?php
namespace Vendor\Module\Block\Checkout;
class Success extends \Magento\Checkout\Block\Success
{
/**
* @return int
*/
public function getGrandTotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getGrandTotal();
}
}
평소 잊지 마세요 app/code/Vendor/Module/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module" setup_version="0.0.1" />
</config>
뿐만 아니라 app/code/Vendor/Module/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
완료되면 다음 명령을 실행했습니다.
php bin/magento module:enable Vendor_Module
php bin/magento setup:upgrade
템플릿에서 다음을 호출 할 수 있어야합니다.
$block->getGrandTotal();
더 많은 메소드 추가
블록 클래스를 추적 할 때 유용한 다음을 추가 할 수 있습니다.
public function getSubtotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getSubtotal();
}
public function getDiscountAmount()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getDiscountAmount();
}
그런 다음 템플릿에서 다음을 호출 할 수 있습니다.
$block->getSubtotal();
$block->getDiscountAmount();