2011-02-11 3 views
1

다음과 같은 이벤트에 대한 관찰자 생성을 시도하고 있습니다. : 'sales_order_payment_pay'. http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events이벤트에 고객 개체를 얻을

나는이 이벤트에 avalaible 너무 많은 매개 변수가 없습니다 ..

당신은 내가 고객의 개체를 검색 할 수있는 방법 어떤 생각을 가지고 있습니까 (내가 정보를 필요 젠토의 의사에 따라 그러나

고객 ID 및 고객 이메일)?

의견을 보내 주셔서 감사합니다 어쨌든 나는 당신에게 좋은 일을 기원합니다,

인 Anselme

답변

3

이 이벤트는 지불 객체를 노출하지 않습니다, 그래서 당신은 당신이 원하는 개체를 얻을이 떨어져 체인 수 있어야한다 : 일반적으로 젠토에서 객체

public function yourObserverFunction($event) { 
    $payment = $event['payment']; 
    $customer = $payment->getOrder()->getCustomer(); 
    // ... do something useful 
} 

이 같은 체인 수를하고, 이제 코드는 고객 세션에서 트리거되는 이벤트에 의존하지 않습니다 (어쨌든 좋은 가정은 아닙니다).

희망 하시겠습니까?

감사합니다, 조 피드백 sdek에 대한

+0

괜찮습니다. 정말 읽어 주셔서 감사합니다. :) 감사합니다. getOrder()에서 getCustomer()에 연결할 수 없었습니다. – Anselme

+0

그래, 이건 분명히 내 대답보다 나은 방법입니다. – shaune

2

모든 이벤트가 주변에 전달되는 $ 관찰자 객체의 내부에 다른 개체를 노출합니다. Magento에서는 요청이나 세션에 포함 된 개체의 수를 참조하여 많은 것을 얻을 수 있습니다. 이 경우 고객이 첨부 된 고객/세션 객체 (Mage_Customer_Model_Session)가 있습니다.

if(Mage::getSingleton('customer/session')->isLoggedIn()){ 
    Mage::getSingleton('customer/session')->getCustomer(); 
} 
+0

덕분에, 확인 나는이 객체가이 시간에 avalaible 몰랐습니다. – Anselme