Magento 2.1
Der unten erwähnte Block ist jetzt Magento\Checkout\Block\Onepage\Success
Magento 2.0
Das einzige, was Sie auf dieser Seite nativ abrufen können, ist die Bestell-ID mit der in getRealOrderId()
definierten MethodeMagento\Checkout\Block\Success
Um die Bestellnummer zu erhalten, können Sie in Ihrer Vorlage Folgendes aufrufen:
$block->getRealOrderId();
Ich verstehe jedoch, dass das nicht genau das ist, was Sie brauchen.
In diesem Fall allerdings wird davon abgeraten, den Objektmanager direkt zu verwenden. Sie sollten ein benutzerdefiniertes Modul verwenden, um Einstellungen für diesen Block zu definieren .
Im app/code/Vendor/Module/etc/frontend/di.xml
benötigen Sie den folgenden Code:
<?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>
Dann in 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();
}
}
Vergiss das Übliche nicht 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>
Ebenso wie app/code/Vendor/Module/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
Sobald Sie fertig sind und die folgenden Befehle ausgeführt haben:
php bin/magento module:enable Vendor_Module
php bin/magento setup:upgrade
In Ihrer Vorlage sollten Sie Folgendes aufrufen können:
$block->getGrandTotal();
Weitere Methoden hinzufügen
Sie können Folgendes hinzufügen, das beim Verfolgen der Blockklasse hilfreich sein kann:
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();
}
Dann können Sie aus Ihrer Vorlage Folgendes aufrufen:
$block->getSubtotal();
$block->getDiscountAmount();