本文整理汇总了PHP中Mage_Newsletter_Model_Subscriber::subscribe方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Newsletter_Model_Subscriber::subscribe方法的具体用法?PHP Mage_Newsletter_Model_Subscriber::subscribe怎么用?PHP Mage_Newsletter_Model_Subscriber::subscribe使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Newsletter_Model_Subscriber
的用法示例。
在下文中一共展示了Mage_Newsletter_Model_Subscriber::subscribe方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: subscribe
public function subscribe($email, $fromWebHooks = null)
{
$store = Mage::app()->getStore()->getStoreId();
$helper = Mage::helper('mailchimp');
if ($helper->mailChimpEnabled($store)) {
$this->loadByEmail($email);
$customerSession = Mage::getSingleton('customer/session');
if (!$this->getId()) {
$this->setSubscriberConfirmCode($this->randomSequence());
}
$isConfirmNeed = (bool) $helper->getSubscribeConfig('double_optin', $store) && !$fromWebHooks ? true : false;
if (!$this->getId() || $this->getStatus() == self::STATUS_UNSUBSCRIBED || $this->getStatus() == self::STATUS_NOT_ACTIVE) {
if ($isConfirmNeed) {
// if user subscribes own login email - confirmation is not needed
$ownerId = Mage::getModel('customer/customer')->setWebsiteId(Mage::app()->getStore()->getWebsiteId())->loadByEmail($email)->getId();
if ($customerSession->isLoggedIn() && $ownerId == $customerSession->getId()) {
$this->setStatus(self::STATUS_SUBSCRIBED);
} else {
$this->setStatus(self::STATUS_NOT_ACTIVE);
}
} else {
$this->setStatus(self::STATUS_SUBSCRIBED);
}
$this->setSubscriberEmail($email);
}
if ($customerSession->isLoggedIn()) {
$this->setStoreId($customerSession->getCustomer()->getStoreId());
$this->setCustomerId($customerSession->getCustomerId());
} else {
$this->setStoreId(Mage::app()->getStore()->getId());
$this->setCustomerId(0);
}
$this->setIsStatusChanged(true);
try {
$this->save();
if ($isConfirmNeed) {
$this->sendConfirmationRequestEmail();
} else {
$this->sendConfirmationSuccessEmail();
}
return $this->getStatus();
} catch (Exception $e) {
throw new Exception($e->getMessage());
}
} else {
return parent::subscribe($email);
}
}