2013-01-09 2 views
1

magento 1.7 용 모듈을 만들려고합니다. 새로운 사용자가 뉴스 레터를 구독 할 때마다 관리자에게 알림 메일을 보냅니다. 나는 지금까지 메일을 보내는데 성공했다. 그러나 내 코드는 getEmail 및 getId 값을 관리자에게 보낸 메일에 표시하지 않습니다. 누군가가 내가 잘못 가고있는 곳에 빛을 던질 수 있다면 좋을 것입니다.Magento에서 뉴스 레터 구독에 대한 관리자 알림 메일을 만드는 방법

응용 프로그램/코드/지역/통지/비주을/etc/config.xml에

<?xml version="1.0" encoding="utf-8"?> 
<config> 
    <modules> 
     <Notify_Biju> 
      <version>0.1.0</version> 
     </Notify_Biju> 
    </modules> 
    <global> 
     <models> 
      <Notify_Biju> 
       <class>Notify_Biju_Model</class> 
      </Notify_Biju> 
     </models> 
     <template> 
      <email> 
       <newsletter_alert_template translate="label" module="n"> 
        <label>Newsletter Alert to Admin</label> 
        <file>newsletter_subscription_notify.html</file> 
        <type>html</type> 
       </newsletter_alert_template> 
      </email> 
     </template> 
    </global> 
    <frontend> 
     <events> 
      <newsletter_subscriber_save_after> 
       <observers> 
        <Notify_Biju_Model_Observer> 
         <type>singleton</type> 
         <class>Notify_Biju_Model_Observer</class> 
         <method>newsletteralert</method> 
        </Notify_Biju_Model_Observer> 
       </observers> 
      </newsletter_subscriber_save_after> 
     </events> 
    </frontend> 
</config> 

응용 프로그램/코드/지역// 비주 통지/모델/Observer.php : 여기에 코드입니다

<?php 

class Notify_Biju_Model_Observer { 

    const XML_PATH_EMAIL_TEMPLATE = 'newsletter_alert_template'; 

    public function newsletteralert($observer){ 

      $eventname=$observer->getEvent()->getName(); 
      $subscriber=$observer->getEvent()->getSubscriber(); 
      $email=$subscriber->getEmail(); 
      $id=$subscriber->getId(); 

      $emailtemplate=Mage::getModel('core/email_template')->loadDefault(self::XML_PATH_EMAIL_TEMPLATE); 
      $sender=array(); 
      $sender['name']="admin"; 
      $sender['email']="[email protected]"; 
      try{ 
      $emailtemplate->sendTransactional(
        self::XML_PATH_EMAIL_TEMPLATE, 
        $sender, 
        '[email protected], [email protected]', // email id of website/store admin 
        'admin', 
        array('subscirber'=>$subscriber) 
        ); 

      } 
      catch(Mage_Core_Exception $e){ 
       // echo $e->getMessage(); 
       Mage::log($e->getMessage(),null,'newsletter.log'); 

      } 

     } 

} 

응용 프로그램은/etc/모듈/Notify_Biju.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Notify_Biju> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Notify_Biju> 
    </modules> 
</config> 

응용 프로그램/로케일/ko 페이지/템플릿/이메일/newsletter_subscription_notify.html

<[email protected] Newsletter Subscription Alert @--> 

<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;"> 
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;"> 

<table cellspacing="0" cellpadding="0" border="0" width="100%"> 

<tr> 
    <td valign="top" style="padding:20px 0 20px 0"> 
    <!-- (header starts here) --> 
    <table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;"> 
    <tr> 
      <td valign="top"> 
       <h3 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"></h3> 
       </td> 
       </tr> 
    <tr> 
     <td valign="top"><h3 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Dear Admin </h3> 
     <p> Congratulations! A new subscriber has registered for Newsletter. Please login to the admin back-end to manage subscriptions.</p> 
     <p>Subscriber Email: {{var subscriber.getEmail()}}</p> 
     <p>Subscriber ID: {{var subscriber.getId()}}</p> 
     <br> 

    </tr> 
       </table> 
     </td> 
       </tr> 
       </table> 
       </div> 
</body> 

답변

0

당신은 오타가 : array('subscirber'=>$subscriber)에 대한

검색. 당신은 관찰자의 가입자 이메일 값 & ID를 얻으려면 "subscirber"

0

으로 맞춤법이 틀린 "가입자"가

,

$subscriber=$observer->getEvent()->getSubscriber() ; 
     $email=$subscriber->getSubscriberEmail(); 
     $id=$subscriber->getSubscriberId(); 



$emailtemplate->sendTransactional(
        XML_PATH_EMAIL_TEMPLATE, 
        Mage::getStoreConfig(XML_PATH_CONFIRM_EMAIL_IDENTITY), 
        '[email protected]', // email id of website/store admin 
        'admin', 
        array(
        'subscriber_email' => $email, 
        'subscriber_id' => $id 
      ) 

그런 다음 메일 - 대신 라인

을의이 같은 변수를 추가
<p>Subscriber Email: {{var subscriber_email}}</p> 
     <p>Subscriber ID: {{var subscriber_id}}</p>