2011-02-11 10 views
1

次のイベントのオブザーバを作成するよう試みています。: 'sales_order_payment_pay'。 http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_eventsイベントの顧客オブジェクトを取得

私はこのイベントにつきそんなにパラメータを持っていない...

あなたは私が顧客のオブジェクトを取得する可能性がどのように任意のアイデアを持っていますか(私は情報を必要とするMagentoのドキュメントに従ってしかし

顧客IDや顧客メールなど)

ご意見をいただきありがとうございますと、とにかく、私はあなたに素敵な一日を願って、

Anselmeの

答えて

3

このイベントは、あなたがしたいオブジェクトを取得することのオフ連鎖にできるはずですので、支払オブジェクトを公開します:

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

は、一般的に次のように連鎖させることができますMagentoの内のオブジェクトを、そしてあなたのコードは、顧客セッションからトリガされたイベントに依存しません(これは、とにかく良い仮定ではありません)。

希望に役立ちます!

おかげで、 ジョーあなたのフィードバックsdekため

+0

okこれは本当に読みやすいです:)ありがとう。私はgetOrder()からgetCustomer()にチェーンすることはできませんでした。 – Anselme

+0

うん、これは間違いなく私の答えより良い方法です。 – shaune

2

すべてのイベントが周りに渡される$オブザーバオブジェクトの内部に別のオブジェクトを公開します。 Magentoでは、多くの場合、リクエストまたはセッションに含まれるオブジェクトの数を参照することで、多くのことを得ることができます。この場合、顧客を添付した顧客/セッションオブジェクト(Mage_Customer_Model_Session)があります。

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

おかげで、[OK]を私は、このオブジェクトは、この時点でのつきだったことを知りませんでした。 – Anselme

関連する問題