誰かが Magento ニュースレターを購読するときに、姓名も記入してもらいたいです。フォームに 2 つの入力フィールドを追加しました。フィールド名は「firstname」と「lastname」です。
Mage/Newsletter/controllers/SubscriberController.phpを拡張していきます
newAction () で:
ここで投稿変数を取得しました:
$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を調べたところ、サブスクライバー名を設定する機能がないことがわかりました。
管理画面のグリッドを見ると、「Customer First Name」と「Customer Last Name」と表示されていることにも気付きました。そのため、これらの名前はサブスクライバー モデルではなく、カスタマー モデルに属していると思います。
これを回避する方法はありますか?ニュースレターを購読するときに、購読者に顧客名を割り当てられるようにしたいと考えています。この投稿に記載されているオブザーバー メソッドを試しましたが、同じ問題が存在すると思います: Magento のサブスクリプション モジュールにカスタム フィールドを追加する
どんな助けでも大歓迎です。