我公司目前已經在啓用通訊複選框:Magento CE 1.9 - 如何將註冊時事通訊註冊複選框添加到編輯頁面?
/app/design/frontend/new/default/template/customer/form/register.php
看來使用下面的代碼模板文件:
<?php if ($this->isNewsletterEnabled()): ?>
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
<label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
<?php echo $this->getChildHtml('customer.form.register.newsletter')?>
<?php endif ?>
問題
如何我可以將這個相同的表單輸入添加到編輯帳戶頁面嗎?
/app/design/frontend/new/default/template/customer/form/edit.php
複印剛剛上面的代碼提供了以下錯誤,這顯然意味着沒有被包括在所需要的功能。
我猜這意味着我錯過了一些XML的地方......但在哪裏?
Fatal error: Call to a member function getIsSubscribed() on a non-object
我想我可能需要添加以下到一個佈局文件,這應該是在這個文件中的customer.xml
如果是這樣的行蹤?在這個標籤裏面<customer_account_edit translate="label">
?
{{block type="newsletter/subscribe" template="newsletter/subscribe.phtml"}}
研究
我發現下面的Magento的StackOverflow問題,但它並沒有回答在XML去?
Newsletter Signup on CMS page in Magento
您可以使用相同的代碼,但看起來EDIT塊沒有所有必需的功能,你可以重寫。在那個塊被調用的地方,你可以確保塊類型是「客戶/註冊」,可以解決它。否則EDIT塊類可以擴展Mage_Customer_Block_Form_Register類 – Dharam 2014-11-04 11:13:37