当有人订阅Magento时事通讯时,我也希望他们填写他们的名字和姓氏.我已将两个输入字段添加到表单中.字段名称是’firstname’和’lastname’.
我要扩展Mage / Newsletter / controllers / SubscriberController.php
在newAction()中:
我在这里检索了post变量:
$email = (string) $this->getRequest()->getPost('email');
$firstname = (string) $this->getRequest()->getPost('firstname');
$lastname = (string) $this->getRequest()->getPost('lastname');
我在成功消息后添加了以下代码:
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
$subscriber->setEmail("example@email.com");
$subscriber->setFirstname("ADAM");
$subscriber->setLastname("MOSS");
$subscriber->save();
我只是希望得到名字和姓氏方法 – setEmail部分完美运行.我查看了Model / Subscriber.php,发现没有设置用户名的功能.
查看管理员中的网格我还注意到它显示“客户名字”和“客户姓氏”,因此我假设名称属于客户模型而不是订户模型.
有没有解决的办法?我希望能够在订阅新闻通讯时将客户名称分配给订阅者.我尝试了这篇文章中提到的观察者方法,但我认为存在同样的问题:Adding a custom field to Magento’s subscription module
任何帮助将非常感激.
最佳答案 看一下数据库中的newsletter_subscriber表.没有名字或姓氏.您只能在简报模型上设置这些字段.
订户模型中的subscribe()方法将订户与客户ID相关联,因此网格确实显示了客户名字和姓氏.
如果您还希望将这些字段用于与cutomer无关的订阅者,则应通过添加这两个字段来修改newsletter_subscriber数据库表.