gre*_*dev 2 magento magento-1.4
我正在尝试编写Magento(CE 1.4)扩展,以便在订单付款后导出订单数据.我已经建立了一个挂钩到sales_order_invoice_save_after事件的观察者,并且它正常工作 - 我的函数在生成发票时执行.但是我无法获得有关订单的信息,例如送货地址,帐单地址,订购的商品,订单总数等.
这是我的尝试:
class Lightbulb_Blastramp_Model_Observer {
public function sendOrderToBlastramp(Varien_Event_Observer $observer) {
$invoice = $observer->getEvent()->getInvoice();
$order = $invoice->getOrder();
$shipping_address = $order->getShippingAddress();
$billing_address = $order->getBillingAddress();
$items = $invoice->getAllItems();
$total = $invoice->getGrandTotal();
return $this;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在所有这些变量上做一个print_r,最后得到了大量的数据.有人能指出我正确的方向获取订单的送货地址吗?
谢谢!
许多Magento对象都是基于的Varien_Object
,它有一个方法被调用getData()
来获取对象的通常有趣的数据(不包括大量其他的,但主要是无用的数据).
使用您的代码,您可以立即获取所有数据:
$shipping_address = $order->getShippingAddress();
var_dump($shipping_address->getData());
Run Code Online (Sandbox Code Playgroud)
或直接针对特定的单个属性,如下所示:
$shipping_address = $order->getShippingAddress();
var_dump(
$shipping_address->getFirstname(),
$shipping_address->getLastname(),
$shipping_address->getCity()
);
Run Code Online (Sandbox Code Playgroud)
要理解它是如何工作的,我建议让自己更加熟悉Varien_Object
和阅读一些关于PHP的魔术方法,如__call()
,__get()
和__set()
.
归档时间: |
|
查看次数: |
12445 次 |
最近记录: |