Pages

Tuesday 25 November 2014

Magento add custom field in newsletter module.

Step 1 : Open file: root/app/design/frontend/your-package-name/your-theme/template/newsletter/subscribe.phtml

Add input field for ‘Name’ before ‘Email’ Field : 
 

Step 2 : Open file: root/app/code/core/Mage/Newsletter/controllers/SubscriberController.php

A. Search:
 $status = Mage::getModel('newsletter/subscriber')->subscribe($email);
Replace with:
 if ($this->getRequest()->getPost('subscriber_name'))
{
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
$subscriber_name     = (string) $this->getRequest()->getPost('subscriber_name');
$subscriber->setsubscriber_name($subscriber_name);
}
$status = Mage::getModel('newsletter/subscriber')->subscribe($email,$subscriber_name);
Step 3 : Open file : root/app/code/core/Mage/Newsletter/Model/Subscriber.php

A. Search:
 public function subscribe($email)
Replace with:
 public function subscribe($email,$subscriber_name=null)
B. Search:
 $this->setSubscriberEmail($email);
Add after it:
 $this->setsubscriber_name($subscriber_name);
C. Search:
 public function setEmail($value)
{
return $this->setSubscriberEmail($value);
}
Add after it:
 public function setsubscriber_name($value)
{
return $this->setSubscriberName($value);
}
Step 4 : Open file : root/app/code/core/Mage/Adminhtml/Block/Newsletter/Subscriber/Grid.php
A. Search:
 $this->addColumn('email', array(
'header'    => Mage::helper('newsletter')->__('Email'),
'index'     => 'subscriber_email'
));
Add before it:
 $this->addColumn('subscriber_name', array(
'header'    => Mage::helper('newsletter')->__('Subscriber Name'),
'index'     => 'subscriber_name',
'default'   =>    '----'
));
Step 5 : Open your database.
 Create a field ‘subscriber_name’ in table “Newsletter Subscriber”.
Step 6 : Clear the caches ............ and reindex

No comments:

Post a Comment