Как добавить имя в информационный бюллетень Magento 1 - PullRequest
0 голосов
/ 24 июня 2018

Я пытался добавить имя подписчика в рассылку Magento.Я ничего не могу найти в Google.Я посмотрел на Добавление пользовательского поля в модуль подписки Magento , но мне это не понятно.У меня есть поле в таблице newsletter_subscriber с именем subscriber_firstname в базе данных и сетке администратора.

Я создал такой модуль:

В приложении / etc / modules / Afe_Newslettername.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Afe_Newslettername>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Newsletter/>
            </depends>
        </Afe_Newslettername>
    </modules>
</config>

В приложении / код / ​​локальный / Afe / Имя информационного бюллетеня / etc / config.xml

<?xml version="1.0"?>
<config>    
<global>
<frontend>
    <events>
        <newsletter_subscriber_save_before>
            <observers>
                <afe_newslettername>
                    <class>afe_newslettername/observer</class>
                    <method>newsletterSubscriberSave</method>
                </afe_newslettername>
            </observers>
        </newsletter_subscriber_save_before>
    </events>
</frontend>
</global>
</config>

В приложении / код / ​​локальный / Afe / Newslettername / Модель / Observer.php

<?php
class Afe_Newslettername_Model_Observer
{
public function newsletterSubscriberSave(Varien_Event_Observer $observer)
{
    $subscriber = $observer->getEvent()->getSubscriber();
    $name = Mage::app()->getRequest()->getParam('subscriber_firstname');

    $subscriber->setSubscriberName($name);

    return $this;
}
}

... но имя не сохраняется в базе данных и не отображается в сетке подписчика на рассылку администратора.

Чего мне не хватает?

ОБНОВЛЕНИЕ:

Я изменил свой config.xml на:

<?xml version="1.0"?>
<config>
  <modules>
    <Afe_Newslettername>
      <version>1.0.0.0</version>
    </Afe_Newslettername>
  </modules>
  <global>
    <models>
      <afenewsletters>
        <class>Afe_Newslettername_Model</class>
      </afenewsletters>
    </models>
  </global>
       <events>
        <newsletter_subscriber_save_before>
            <observers>
                <add_name>
                    <class>afe_newslettername/observer</class>
                    <method>newsletterSubscriberSave</method>
                </add_name>
            </observers>
        </newsletter_subscriber_save_before>
       </events>
</config>

Но теперь я получаю эту ошибку:

Warning: include(Mage/Afe/Newslettername/Model/Observer.php): failed to open stream: No such file or directory  in /home/www/public_html/lib/Varien/Autoload.php on line 94
Warning: include(): Failed opening 'Mage/Afe/Newslettername/Model/Observer.php' for inclusion (include_path='/home/www/public_html/app/code/local:/home/www/public_html/app/code/community:/home/www/public_html/app/code/core:/home/www/public_html/lib:.:/opt/cpanel/ea-php70/root/usr/share/pear')  in /home/www/public_html/lib/Varien/Autoload.php on line 94

Не уверен, почему это выглядитв папке Маг?

1 Ответ

0 голосов
/ 25 июня 2018

Я думаю, что есть какая-то проблема в вашем коде объявления события. Пожалуйста, попробуйте ниже код. Надеюсь, что это работает.

config.xml файл:

<newsletter_subscriber_save_before>
    <observers>
        <afe_newslettername>
            <class>Afe_Newslettername_Model_Observer</class>
            <method>newsletterSubscriberSave</method>
        </afe_newslettername>
    </observers>
</newsletter_subscriber_save_before>

Observer.php файл:

public function newsletterSubscriberSave($observer)
...