顧客がアカウントを確認したときにイベントをキャッチする方法はありますか?ユーザーが他の統合サブシステムにアクセスできるようにするには、この機能が必要です
3 に答える
すべてのモデルには、標準のload_before、load_after、save_before、save_afterなどのイベントがあります。Mage_Core_Model_Abstractを見て、事前定義されたすべてのイベントのリストを取得します。
顧客の場合、customer_save_afterイベントを使用できます。オブザーバーで、元のデータと新しいデータを確認します。
public function myObserver(Varien_Event_Observer $observer)
{
$customer = $observer->getCustomer();
$orig_active_flag = $custoner->getOrigData('is_active');
$new_active_flag = $customer->getData('is_active');
// do something here …
return $this;
}
以下のコードを使用して、顧客の承認後に独自のイベントを作成することもできます。
Mage::dispatchEvent('Yuor_Unique_Event_Name', array());
このイベントを使用すると、やりたいことが何でもできます。
confirmAction()
でイベントを発生させていないようですので
/app/code/core/Mage/Customer/controllers/AccountController.php
あなたはどちらかを行うことができます
フロントエンドコアコントローラーをオーバーライドして、AccountController.phpを使用して独自のイベントを作成する
Mage::dispatchEvent()
か、コードを直接追加しますconfirmAction
@Pavel Novitskyの回答を使用しますが、このイベントは顧客情報が変更/更新されるたびにトリガーされるため、アカウントコントローラーの確認を行っているか、電子メール確認フラグの変更を確認する必要がある場合があります
例えば
public function myObserver(Varien_Event_Observer $observer)
{
if(Mage::app()->getRequest()->getControllerName() == '....account_confirm'){
$customer = $observer->getCustomer();
....
}
}