2012-02-27 16 views
2

MagentoとPHPを初めて使用しています。次の行を使用して電子メールを取得しますが、顧客が登録したばかりの場合を除いて正常に動作します。助言がありますか?ありがとう。登録後すぐに顧客の電子メールを取得する方法は?

$userEmail = Mage::getSingleton('customer/session')->getCustomer()->getEmail(); 

答えて

2

このコードは、顧客オブジェクトのデータが完全に保存される前に実行されると仮定します。

callledコードの行があります:OnePageCheckoutで、それは次のようん:顧客はちょうどチェックアウトプロセスを使用して、いない登録されている場合は

/** 
    * Involve new customer to system 
    * 
    * @return Mage_Checkout_Model_Type_Onepage 
    */ 
    protected function _involveNewCustomer() 
    { 
     $customer = $this->getQuote()->getCustomer(); 
     if ($customer->isConfirmationRequired()) { 
      $customer->sendNewAccountEmail('confirmation', '', $this->getQuote()->getStoreId()); 
      $url = Mage::helper('customer')->getEmailConfirmationUrl($customer->getEmail()); 
      $this->getCustomerSession()->addSuccess(
       Mage::helper('customer')->__('Account confirmation is required. Please, check your e-mail for confirmation link. To resend confirmation email please <a href="%s">click here</a>.', $url) 
      ); 
     } else { 
      $customer->sendNewAccountEmail('registered', '', $this->getQuote()->getStoreId()); 
      $this->getCustomerSession()->loginById($customer->getId()); 
     } 
     return $this; 
    } 

、その要求を使用してさまざまな機能がありますアントンのようなパラメータは言った:

/app/code/core/Mage/Customer/Block/Form/Register.php

/** 
* Restore entity data from session 
* Entity and form code must be defined for the form 
* 
* @param Mage_Customer_Model_Form $form 
* @return Mage_Customer_Block_Form_Register 
*/ 
public function restoreSessionData(Mage_Customer_Model_Form $form, $scope = null) 
{ 
    if ($this->getFormData()->getCustomerData()) { 
     $request = $form->prepareRequest($this->getFormData()->getData()); 
     $data = $form->extractData($request, $scope, false); 
     $form->restoreData($data); 
    } 

    return $this; 
} 
1

リクエストパラメータから直接取得できますか?

+0

をあなたはより具体的なことができますか?ありがとう! – Bobo

+0

$ _POSTから取得します(そして、magentoがこれに対応する同等の構文を使用します)? –

関連する問題