Добавление ссылки отказа от подписки в настраиваемом электронном письме magento - PullRequest
4 голосов
/ 24 мая 2011

Как добавить ссылку для отмены подписки в пользовательском уведомлении по электронной почте. Я отправляю электронное письмо с помощью функции Zend Mail. Я следую этой функции. Отправка почты в magento в теле. В своем уведомлении по электронной почте я использую эту функцию.


public function sendMail()
    {           
        $post = $this->getRequest()->getPost();     
        if ($post){
                $random=rand(1234,2343);

                $to_email = $this->getRequest()->getParam("email");
                $to_name = 'Hello User';
                $subject = ' Test Mail- CS';
                $Body="Test Mail Code : "; 

                $sender_email = "sender@sender.com";
                $sender_name = "sender name";

                $mail = new Zend_Mail(); //class for mail
                $mail->setBodyHtml($Body); //for sending message containing html code
                $mail->setFrom($sender_email, $sender_name);
                $mail->addTo($to_email, $to_name);
                //$mail->addCc($cc, $ccname);    //can set cc
                //$mail->addBCc($bcc, $bccname);    //can set bcc
                $mail->setSubject($subject);
                $msg  ='';
                try {
                      if($mail->send())
                      {
                         $msg = true;
                      }
                    }
                catch(Exception $ex) {
                        $msg = false;
                        //die("Error sending mail to $to,$error_msg");
                }
                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($msg));
            }
    }

Ответы [ 3 ]

5 голосов
/ 24 октября 2012

Если у вас есть пользовательский модуль, используйте этот код:

Mage::getModel('newsletter/subscriber')->loadByEmail($email)->getUnsubscriptionLink();

Пояснение:

первая часть - модель для подписчика.Если вы хотите увидеть все доступные методы в модели, просто используйте этот код:

$myModel =  Mage::getModel('newsletter/subscriber');
foreach (get_class_methods(get_class($myModel)) as $cMethod) {
    echo '<li>' . $cMethod . '</li>';
}

вторая часть кода loadByEmail($email) предназначена для получения 1 конкретного объекта подписчика.$email должна быть строкой адреса электронной почты.

Последняя часть кода представляет собой метод самоопределения.Будет сгенерирована ссылка на отписку.Это метод, который дан Magento.

4 голосов
/ 24 мая 2011

В моей версии Magento по умолчанию при создании нового шаблона новостной рассылки я получаю следующий код:

Follow this link to unsubscribe <!-- This tag is for unsubscribe link --><a href="{{var subscriber.getUnsubscriptionLink()}}">{{var subscriber.getUnsubscriptionLink()}}</a>

Ожидается, что он будет работать в любой версии Magento.

0 голосов
/ 17 сентября 2015

Я использую Magento 1.9. Чтобы добавить ссылку для отмены подписки на рассылку в шаблоне рассылки, выполните следующие действия:

  1. Переопределить основной файл

/ приложение / код / ​​ядро ​​/ Mage / Информационный бюллетень / модель / Subscriber.php

путем копирования в локальный каталог

/ приложение / код / ​​местные / Mage / Информационный бюллетень / модель / Subscriber.php

  1. Открыть в редакторе для редактирования кода и поиска function sendConfirmationSuccessEmail() заменить код
$email->sendTransactional(
    Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_TEMPLATE),
    Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_IDENTITY),
    $this->getEmail(),
    $this->getName(),
    array('subscriber'=>$this)
);

с этим

$email->sendTransactional(
    Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_TEMPLATE),
    Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_IDENTITY),
    $this->getEmail(),
    $this->getName(),
    array('subscriber'=>$this, 'unsubscribe' =>$this->getUnsubscriptionLink())
);
  1. и поместите этот код в шаблон электронной почты, где вы хотите использовать ссылку для отписки:

    <a href="{{var unsubscribe}}">Unsubscribe here</a>

Вот и все!

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...