2015-05-01 99 views
1

我仍然在處理Magento CE 1.8.1.0,我想要做的是找出代碼是用於創建帳戶的新聞訂閱的代碼。Magento - 更新時事通訊註冊

我們不使用標準的Magento時事通訊,我們的地址存儲在第三方軟件中。理想情況下,如果用戶點擊提交按鈕時,它會將電子郵件地址添加到單獨的數據庫,但要這樣做,我需要找出代碼的位置。

我發現帳號註冊頁面在這裏:

/app/design/frontend/default/yourhealthfoodst/template/persistent/customer/form/register.phtml 

而且通訊複選框這裏:

<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate"> 

<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed" checked="checked" class="checkbox" /> 

如果提交按鈕這種形式的一部分

並從我可以收集,$ this-> getPostActionUrl()是:

/customer/account/createpost/ 

我只是努力尋找下一步......如果這是有道理的!

感謝您的任何意見

回答

1

訂閱客戶的新聞郵件位於subscribeCustomer方法第389行的Mage_Newsletter_Model_Subscriber類中。該方法從第34行的Mage_Newsletter_Model_Observer的subscribeCustomer方法中調用,該事件監聽事件customer_save_after。

當用戶在客戶/帳戶/創建頁面上提交表單時,表單將在線264上的Mage_Customer_AccountController中調用客戶/帳戶/創建信息控制器操作。控制器加載客戶模型,填充客戶數據並保存到數據庫。保存客戶後,調度customer_save_after事件,並向該客戶發送已註冊該事件的Mage_Newsletter_Model_Observer。通訊觀察員比訂閱客戶。

+0

完美!非常感謝你 – Lee

0

我不知道你是否有映射的URL請求到其被處理的文件系統的基本理解。

/customer/account/createpost/ 

它說,這是要執行內部

應用程序/代碼/核心/ customer(module)/account(controller)/createpostAction(action function)路徑在行動,但正如你所說的,它被保存在第三方則必須有一個模塊在本地或社區池中,這是控制器過度。

若要檢查,也許您可​​以查找包名稱類似於您的第三方供應商的模塊。然後,在該模塊中,您可以看到此表單文章的動作函數。

+0

您還可以使用文本編輯器在xml文件中搜索'before =「Mage_Customer」''。通過這種方式,您可以找到用於註冊過帳的控制器的config.xml。 – Techroshni