取自 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());
}
抱歉之前说了些无意义的话……