Чтобы увидеть страницу, я хочу, чтобы пользователь подписался на нашу рассылку новостей


Я хотел бы, чтобы только подписанные пользователи/гости могли видеть содержимое страницы. Как я могу этого добиться? Я также хочу, чтобы, если вы не подписаны, появилась форма для подписки, а затем появилась возможность просматривать страницу.

Author: Denisa, 2014-08-14

2 answers

Вы можете указать, является ли клиент подписчиком или нет, используя приведенный ниже код

$subscriber = Mage::getModel('newsletter/subscriber')->loadByCustomer($customer); Где $csutomer - объект клиента

Или

Получить список подписчиков, используя приведенный ниже код

$collection = Mage::getResourceSingleton('newsletter/subscriber_collection')
 ->showCustomerInfo(true)
            ->addSubscriberTypeField()
            ->showStoreInfo();

Или проверьте по электронной почте

  $status = Mage::getModel('newsletter/subscriber')->subscribe($email);

Поместите этот код в список страниц действий вашего модуля как

if($status==1){
}
else{
/* redirect to other page */
}

Пример:

public function yourAction(){
{
//$email=email address
$status = Mage::getModel('newsletter/subscriber')->subscribe($email);
if($status!=1){
/* redirection to home page*/
 $this->_redirect('*/*/');
            return;
}
//other wise run your code:
}
 1
Author: Amit Bera, 2014-08-14 19:18:57

Вам нужно создать страницу или, возможно, всплывающее окно, где вы можете получать электронную почту клиентов, и вы можете поместить следующий код в действие контроллера, где эта форма отправляет данные:

$email = $this->getRequest()->getParam('email');
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
if($subscriber->getId())
{
 allow the access to site.
}
else{
     $status = Mage::getModel('newsletter/subscriber')->subscribe($email);
     if ($status == Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE) {
          Confirmation request has been sent but not confirmed yet.
          restrict the access.
     }else{
        allow the access now.
     }

}

Не проверено, но, надеюсь, это сработает. Код сначала проверит существующую подписку и подпишется, если ее еще нет.

 1
Author: MTM, 2014-08-18 07:20:03