Benutzerdefinierte Informationen zum Magento-Zahlungsblock
-
13-12-2019 - |
Frage
Ich möchte das „Erstellungsdatum“ einer Bestellung anzeigen in:
Sales -> Orders -> User -> Information -> Payment methods
Im Moment verwende ich diesen Code:
class Company_Module_Block_Info extends Mage_Payment_Block_Info
{
protected function _prepareSpecificInformation($transport = null)
{
if (null !== $this->_paymentSpecificInformation) {
return $this->_paymentSpecificInformation;
}
$info = $this->getInfo();
//Zend_Debug::dump($info); //List with created_at date
$transport = new Varien_Object();
$transport = parent::_prepareSpecificInformation($transport);
$transport->addData(array(
Mage::helper('payment')->__('Expiration date') => $info->getExpireDate(),
Mage::helper('sales')->__('Creation date') => $info->getCreatedAt(),
Mage::helper('payment')->__('Picked up by') => $info->getPickupCustomer()
));
return $transport;
}
}
Die Zeile, die nicht funktioniert, ist diese:
Mage::helper('sales')->__('Creation date') => $info->getCreatedAt(),
Im Moment gibt es NULL
, aber ich erwarte, dass das benutzerdefinierte Erstellungsdatum der Bestellung zurückgegeben wird (im Format jjjj-mm-tt hh:mm:ss).Wenn ich es benutze Mage::getModel('sales/order')->getCollection()->getFirstItem(); $order->getCreatedAt();
Es gibt das erste Erstellungsdatum der ersten Bestellung zurück, aber ich benötige es für die ausgewählte Bestellung.
Hat jemand eine Idee, was falsch ist?
Lösung
$info
wird eine Instanz von enthalten Mage_Payment_Model_Info
oder Mage_Sales_Model_Order_Payment
(was sich erstreckt Mage_Payment_Model_Info
)
Das Erstellungsdatum, das Sie erhalten möchten, ist das Erstellungsdatum des tatsächlichen Kundenauftrags, aber Sie versuchen, es aus dem Infomodell abzurufen.
Wenn Sie anrufen würden $info->getOrder()->getCreatedAt()
dann sollte das funktionieren.