Php Magento:注册客户还需要时事通讯double opt-in

Php Magento:注册客户还需要时事通讯double opt-in,php,magento,newsletter,Php,Magento,Newsletter,我已经成功地为客人设置了新闻稿订阅,因此如果客人注册了新闻稿,他将收到新闻稿确认请求电子邮件,他必须单击确认链接。在德国,每一份依法注册的时事通讯都需要这种“双重选择” 问题在于已经注册的客户:他们可以在自己的帐户中订阅时事通讯,但这里没有双重选择。因此,在检查订阅后,他们会立即订阅新闻稿,而不会收到确认请求电子邮件 我只找到了一些关于如何将注册客户的此选项更改为double opt-in的旧教程,但这些教程在我当前版本的Magento(1.5)中不再适用 那么我如何更改app/code/cor

我已经成功地为客人设置了新闻稿订阅,因此如果客人注册了新闻稿,他将收到新闻稿确认请求电子邮件,他必须单击确认链接。在德国,每一份依法注册的时事通讯都需要这种“双重选择”

问题在于已经注册的客户:他们可以在自己的帐户中订阅时事通讯,但这里没有双重选择。因此,在检查订阅后,他们会立即订阅新闻稿,而不会收到确认请求电子邮件

我只找到了一些关于如何将注册客户的此选项更改为double opt-in的旧教程,但这些教程在我当前版本的Magento(1.5)中不再适用


那么我如何更改
app/code/core/Mage/Newsletter/Model/Subscriber.php中的函数“subscribe”来获得这种行为呢?

如果它们的代码与1.6相同(或至少非常相似),那么您应该能够在
公共函数subscribe($email)
中为我注释出第291行是什么:

它会将订阅标记为“未激活”,而不是立即“订阅”。以下是这段代码供参考:

// 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
,因此这将使其保持false。您还可以注释掉加载的
$ownerId
,因为它仅用于检查用户是否订阅了自己的电子邮件。

如果他们的代码与1.6相同(或至少非常相似),那么您应该能够注释掉
公共功能订阅($email)
中的第291行:

它会将订阅标记为“未激活”,而不是立即“订阅”。以下是这段代码供参考:

// 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
,因此这将使其保持false。您还可以注释掉加载的
$ownerId
,因为它仅用于检查用户是否订阅了他们自己的电子邮件。

否,不幸的是,注释掉您建议的行似乎不起作用。我做错什么了吗?更改代码后,我刷新了所有缓存,代码更改应该可以正常工作,对吗?然而,这是我目前的订阅方法:嗯,看起来它应该可以工作了。可能强制
$isConfirmNeeded
否,不幸的是,注释掉您建议的行似乎不起作用。我做错什么了吗?更改代码后,我刷新了所有缓存,代码更改应该可以正常工作,对吗?然而,这是我目前的订阅方法:嗯,看起来它应该可以工作了。可能会强制
$isConfirmNeeded
true