禁用Magento默认的通讯交易邮件

redmaomail 2024-07-24 18:12 阅读数 68 #Magento

红帽云邮外贸主机

并不是每个人对Magento中的通讯选项满意,所以他们选择第三方服务。在这种情况下,关闭Magento默认的通讯交易邮件并让第三方服务来接管电子邮件是一个好主意。在这篇文章中我将演示如何关闭Magento中默认的通讯交易邮件。

首先,我们重写核心文件中的config.xml

<newsletter>
	<rewrite>
		<subscriber>Alwayly_Newsletter_Model_Newsletter_Subscriber</subscriber>
	</rewrite>
</newsletter>

创建system.xml,把下面的代码放进去:

<?xml version="1.0"?>
 
<config>
   <tabs>
        <alwayly_tab translate="label">
            <label>Alwayly</label>
            <sort_order>200</sort_order>
        </alwayly_tab>
    </tabs>
 
    <sections>
        <alwayly_newsletter translate="label">
            <label>Newsletter Configuration</label>
            <tab>alwayly_test_tab</tab>
           <frontend_type>text</frontend_type>
            <sort_order>1</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <newsletter_subscription_transactional_mails>
                   <label>Newsletter Subscription Transactional Mails</label>
                    <frontend_type>text</frontend_type>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <sort_order>120</sort_order>
                    <fields>
                        <enabled translate="label">
                           <label>Enable</label>
                            <frontend_type>select</frontend_type>
                            <source_model>adminhtml/system_config_source_yesno</source_model>
                            <sort_order>40</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                        </enabled>
                    </fields>
                </newsletter_subscription_transactional_mails>
            </groups>
        </alwayly_newsletter>
    </sections>
</config>

下一步,我们将添加我们的配置路径到Helper类和一个获取值的方法:

class Alwayly_Newsletter_Helper_Data extends Mage_Core_Helper_Abstract
{
    const XML_PATH_NEWSLETTER_MAILS  = 'alwayly_newsletter/newsletter_subscription_transactional_mails/enabled';
 
    public function getNewsletterSubscriptionMailEnabled()
    {
        return Mage::getStoreConfig(self::XML_PATH_NEWSLETTER_MAILS);
    }
}

最后一步就是编辑几个以前我们改写过的核心方法。我们新的模型类是Alwayly_Newsletter_Model_Newsletter_Subscriber,它扩展自Mage_Newsletter_Model_Subscriber类。类名取决于你的模块,我们经常要扩展核心类,否则将无法正常工作。

你将需要从核心类里拷贝3个方法到我们的新类中并做一些调整。

  • 公用方法subscribe($email)
  • 公用方法subscribeCustomer($customer)
  • 公用方法unsubscribe()

在subscribe方法中找到:

if ($isConfirmNeed === true
	&& $isOwnSubscribes === false
) {
	$this->sendConfirmationRequestEmail();
} else {
	$this->sendConfirmationSuccessEmail();
}

用下面的代码替换:

if ((bool) Mage::helper('alwayly_newsletter')->getNewsletterSubscriptionMailEnabled()) {
    if ($isConfirmNeed === true && $isOwnSubscribes === false) {
        $this->sendConfirmationRequestEmail();
    } else {
        $this->sendConfirmationSuccessEmail();
    }
}

在subscribeCustomer方法中找到:

if ($this->getIsStatusChanged() && $status == self::STATUS_UNSUBSCRIBED) {
    $this->sendUnsubscriptionEmail();
} elseif ($this->getIsStatusChanged() && $status == self::STATUS_SUBSCRIBED) {
    $this->sendConfirmationSuccessEmail();
}

替换成:

if ((bool) Mage::helper('alwayly_newsletter')->getNewsletterSubscriptionMailEnabled()) {
    if ($this->getIsStatusChanged() && $status == self::STATUS_UNSUBSCRIBED) {
        $this->sendUnsubscriptionEmail();
    } elseif ($this->getIsStatusChanged() && $status == self::STATUS_SUBSCRIBED) {
        $this->sendConfirmationSuccessEmail();
    }
}

最后一个unsubscribe方法中:

$this->sendUnsubscriptionEmail();

替换为:

if ((bool) Mage::helper('alwayly_newsletter')->getNewsletterSubscriptionMailEnabled()) {
    $this->sendUnsubscriptionEmail();
}

这意味着,我们首先检查我们的配置选项设置为启用或禁用。如果设置为禁用则不执行if语句里的代码。

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机