繁体   English   中英

来自guest的guest上的MagentogetData。phtml

[英]Magento getData from guest on success.phtml

我正在尝试在结帐成功页面上获取小计金额。 它对注册用户有效:

$_order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$amount = $_order->getData('subtotal');
$total  = number_format($amount, 2);

但是当客人处理订单时, $total为空。

该怎么办?

PS:我正在使用Magento 1.6.1 CE

取自Magento的app/code/core/Mage/Checkout/Block/Onepage.php

if (!$this->isCustomerLoggedIn()) {
    return $this->getQuote()->getShippingAddress();
} else {
    return Mage::getModel('sales/quote_address');
}

我有99%的把握可以使用getOrder()Mage_Checkout_Block_Success =)进行完全相同的操作

注意: isCustomerLoggedIn()方法在定义Mage_Checkout_Block_Onepage_Abstract其不受继承Mage_Checkout_Block_Success 因此,您可以简单地使用其实现:

public function isCustomerLoggedIn()
{
    return Mage::getSingleton('customer/session')->isLoggedIn();
}

例如,您的代码现在应如下所示:

if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
    $order = Mage::getSingleton('checkout/session')->getOrder();
} else {
    $order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
}

很抱歉在您之前说废话...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM