Magento 2出现了一些问题,无法在结帐代码中输出订单值。这是我们的代码:
<!---- Onefeed Tracking Code ---->
<?php
//-------------------------------------------
// GET MAGENTO ORDER VALUES FOR TRACKING CODE
//-------------------------------------------
$orderId = $block->escapeHtml($block->getOrderId());
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('Magento\Sales\Model\Order')->load($orderId);
$total = $order->getGrandTotal();
?>
<script type="text/javascript" language="javascript">
var of_ssid = 'xxxx';
var cs = '<?php echo $total ?>';
var oi = '<?php echo $orderId; ?>';
var it = 1;
</script>
<script type="text/javascript" language="javascript" src="https://tracking.onefeed.co.uk/t.js"></script>
<noscript>
<img border="0" src="https://tracking.onefeed.co.uk/ProcessProductCheckout.ashx?of_ssid=xxxx&cs=<?php echo $total ?>&it=1&oi=<?php echo $orderId; ?>" />
</noscript>
<!---- End Onefeed Tracking Code ---->
有什么想法可以在不使用Magento 2创建模块的情况下输出数据吗?
答案 0 :(得分:0)
您的代码的这一部分一定可以正常工作(刚刚检查):
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('Magento\Sales\Model\Order')->load($orderId);
$total = $order->getGrandTotal();
?>
...
<?php echo $total ?>
由于我不确定您所依赖的Block功能,因此无法确定,但是我猜$orderId = $block->escapeHtml($block->getOrderId());
不会返回有效的订单ID。
我不确定您是否应该使用objectManager。关于何时以及如何在stackexchange上使用它的讨论很多: