我正在尝试为以下事件创建一个观察者: “sales_order_payment_pay”。
然而根据magento doc http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
我在这次活动中没有太多可用的参数..
您是否知道如何检索客户对象(我需要客户ID和客户电子邮件等信息)?
感谢您的反馈,无论如何,祝您今天愉快,
安塞尔姆
答案 0 :(得分:3)
此事件确实会公开付款对象,因此您应该能够将其链接起来以获取所需的对象:
public function yourObserverFunction($event) {
$payment = $event['payment'];
$customer = $payment->getOrder()->getCustomer();
// ... do something useful
}
一般来说,Magento中的对象可以这样链接,现在你的代码不依赖于从客户会话触发的事件(无论如何这都不是一个好的假设)。
希望有所帮助!
谢谢, 乔
答案 1 :(得分:2)
每个事件都会在传递的$ observer对象中公开不同的对象。在Magento中,通常可以通过引用请求或会话中的任意数量的对象来获取大量内容。在这种情况下,有一个客户/会话对象(Mage_Customer_Model_Session),它附有客户。
if(Mage::getSingleton('customer/session')->isLoggedIn()){
Mage::getSingleton('customer/session')->getCustomer();
}