Magento 2.1
Aşağıda belirtilen blok şimdi Magento\Checkout\Block\Onepage\Success
Magento 2.0
Bu sayfada yerel olarak alabileceğiniz tek şey, getRealOrderId()
içinde tanımlanan yöntemi kullanarak sipariş kimliğidir .Magento\Checkout\Block\Success
Böylece, sipariş kimliğini almak için şablonunuzda aşağıdakileri arayabilirsiniz:
$block->getRealOrderId();
Ancak, bunun tam olarak ihtiyacınız olan şey olmadığını anlıyorum.
Bu durumda, nesne yöneticisini doğrudan kullanabilseniz bile önerilmez. Bu blok için tercihleri tanımlamak üzere özel bir modül kullanmalısınız .
İçinde app/code/Vendor/Module/etc/frontend/di.xml
aşağıdaki kodu gerekir:
<?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>
Sonra 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();
}
}
Normali unutma 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>
Yanı sıra app/code/Vendor/Module/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
İşiniz bittiğinde ve aşağıdaki komutları çalıştırdınız:
php bin/magento module:enable Vendor_Module
php bin/magento setup:upgrade
Şablonunuzda aşağıdakileri arayabilirsiniz:
$block->getGrandTotal();
Daha fazla yöntem ekleme
Block sınıfına izlerken faydalı olabilecek aşağıdakileri ekleyebilirsiniz:
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();
}
Ardından, şablonunuzdan aşağıdakileri arayabilirsiniz:
$block->getSubtotal();
$block->getDiscountAmount();