Magento: двойная подписка на рассылку также необходима для зарегистрированных клиентов - PullRequest
1 голос
/ 04 октября 2011

Я успешно настроил подписку на новостную рассылку для гостей, поэтому, если гость подписывается на новостную рассылку, он получает электронное письмо с запросом подтверждения рассылки, в котором он должен щелкнуть ссылку для подтверждения.Это «двойное согласие» необходимо для каждой подписки на новостную рассылку по закону здесь, в Германии.

Проблема заключается в клиентах, которые уже зарегистрированы: они могут подписаться в своей учетной записи на рассылку, но здесь нетдвойной выбор.Поэтому после проверки подписки они сразу же получают подписку на новостную рассылку, не получая электронное письмо с запросом подтверждения.

Я нашел только старые учебные пособия о том, как изменить это на двойную подписку для зарегистрированных клиентов, но эти учебные пособия не работаютбольше с моей текущей версией Magento (1.5).

Итак, как мне изменить функцию «подписка» в app/code/core/Mage/Newsletter/Model/Subscriber.php, чтобы получить такое поведение?

1 Ответ

1 голос
/ 05 октября 2011

Если они имеют такой же код (или, по крайней мере, очень похож) как 1.6, то вы сможете закомментировать, что для меня строка 291 в public function subscribe($email):

$isOwnSubscribes = ($customerSession->isLoggedIn() && $ownerId == $customerSession->getId());

И это будетпометить подписку как «не активную», а не сразу «подписанную».Для справки, вот этот кусок кода:

// if user subscribes own login email - confirmation is not needed
$ownerId = Mage::getModel('customer/customer')
     ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
     ->loadByEmail($email)
     ->getId();
 $isOwnSubscribes = ($customerSession->isLoggedIn() && $ownerId == $customerSession->getId());
 if ($isOwnSubscribes == true){
      $this->setStatus(self::STATUS_SUBSCRIBED);
 }
 else {
      $this->setStatus(self::STATUS_NOT_ACTIVE);
 }

Прямо выше, что он устанавливает флаг $isOwnSubscribes на false, так что это просто позволит ему остаться ложным.Вы также можете закомментировать загрузку $ownerId, поскольку она используется только в части, чтобы проверить, подписывает ли пользователь свою электронную почту.

...