0

顧客がアカウントを確認したときにイベントをキャッチする方法はありますか?ユーザーが他の統合サブシステムにアクセスできるようにするには、この機能が必要です

4

3 に答える 3

1

すべてのモデルには、標準の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;
}
于 2013-01-03T15:13:49.807 に答える
1

以下のコードを使用して、顧客の承認後に独自のイベントを作成することもできます。

Mage::dispatchEvent('Yuor_Unique_Event_Name', array());

このイベントを使用すると、やりたいことが何でもできます。

于 2013-01-03T15:27:16.207 に答える
1

confirmAction()でイベントを発生させていないようですので

/app/code/core/Mage/Customer/controllers/AccountController.php

あなたはどちらかを行うことができます

  1. フロントエンドコアコントローラーをオーバーライドして、AccountController.phpを使用して独自のイベントを作成するMage::dispatchEvent()か、コードを直接追加しますconfirmAction

  2. @Pavel Novitskyの回答を使用しますが、このイベントは顧客情報が変更/更新されるたびにトリガーされるため、アカウントコントローラーの確認を行っているか、電子メール確認フラグの変更を確認する必要がある場合があります

例えば

public function myObserver(Varien_Event_Observer $observer)
{

   if(Mage::app()->getRequest()->getControllerName() == '....account_confirm'){
      $customer = $observer->getCustomer();
      ....
   }
}
于 2013-01-03T15:36:17.263 に答える