Я пытаюсь получить сумму заказа на странице успеха на magento 2, я добавил этот код
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$totall = $order->getGrandTotal();
?>
Но я получаю сообщение об ошибке, когда достигаю страницы успеха после размещения заказа. Я полагаю, что код работает для magento 1, но не для 2. Как я могу заставить это работать также на magento 2?
Ответы:
Magento 2.1
Блок, упомянутый ниже, теперь
Magento\Checkout\Block\Onepage\Success
Magento 2.0
Единственное, что вы можете получить на этой странице - это идентификатор заказа, используя
getRealOrderId()
метод, определенный вMagento\Checkout\Block\Success
Таким образом, чтобы получить идентификатор заказа, вы можете вызвать в своем шаблоне следующее:
Однако я понимаю, что это не совсем то, что вам нужно.
В этом случае, даже если вы можете использовать диспетчер объектов напрямую, это не рекомендуется. Вы должны использовать пользовательский модуль, чтобы определить предпочтения для этого блока .
В
app/code/Vendor/Module/etc/frontend/di.xml
вам нужен следующий код:Тогда в
app/code/Vendor/Module/Block/Checkout/Success.php
:Не забывай обычного
app/code/Vendor/Module/etc/module.xml
Так же хорошо как
app/code/Vendor/Module/registration.php
Когда вы закончите и выполните следующие команды:
Вы должны иметь возможность вызывать следующее в вашем шаблоне:
Добавление дополнительных методов
Вы можете добавить следующее, которое может быть полезно при отслеживании в классе блока:
Тогда вы сможете вызывать следующее из вашего шаблона:
источник
echo get_class($block);
чтобы проверить, работает ли переопределение, но если блок вообще не отображается, это, вероятно, не сработаетПросто открой
Magento_Checkout/frontend/templates/success.phtml
И поместите ниже код в файле
В приведенном выше коде вы получите все данные заказа на странице успеха.
Благодарность
источник
Насколько я знаю, есть событие -
checkout_onepage_controller_success_action
которое запускается после того, как Checkout одна страница успешно.продавец / Magento / модуль-контроль / контроллер / OnePage / Success.php
Как мы видим, мы можем получить идентификатор заказа с помощью Observer. Например:
Посмотрите модули google для более подробной информации:
vendor / magento / module-google-adwords
vendor / magento / module-google-analytics
источник