Взято из 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());
}
Извините, что сказал бессмысленные вещи до ...