西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

如何禁用默认Magento交易通讯邮件

时间:2015-06-28 15:15来源:未知 作者:好模板 点击:
不是每个人都满意Magento的有关通讯选项,因此他们选择使用一些第三方服务(如MailChimp)。在这种情况下,它可能是禁用Magento的默认通讯事务的电子邮件,并让其他第三方服务照顾电

不是每个人都满意Magento的有关通讯选项,因此他们选择使用一些第三方服务(如MailChimp)。 在这种情况下,它可能是禁用Magento的默认通讯事务的电子邮件,并让其他第三方服务照顾电子邮件的一个好主意。

在本教程中我将演示如何禁用这些默认Magento的通讯事务电子邮件​​。

对于启动,我们将改写核心模式在我们的config.xml

<newsletter>
    <rewrite>
        <subscriber>Inchoo_Newsletter_Model_Newsletter_Subscriber</subscriber>
    </rewrite>
</newsletter>
 

这可能是一个好主意,把配置选项,因此店老板可以打开默认的电子邮件随时/关他想。

我们将开始通过创建的system.xml并把这个代码块吧:

<?xml version=“1.0”?>
<config>
    <tabs>
        <inchoo_tab translate=“label”>
            <label>Inchoo</label>
            <sort_order>200</sort_order>
        </inchoo_tab>
    </tabs>
    <sections>
        <inchoo_newsletter translate=“label”>
            <label>Newsletter Configuration</label>
            <tab>inchoo_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>
        </inchoo_newsletter>
    </sections>
</config>

 

下一步,我们将添加路径,我们Helper类内部配置选项和方法来检索其值:

class Inchoo_Newsletter_Helper_Data extends Mage_Core_Helper_Abstract
{
    const XML_PATH_NEWSLETTER_MAILS  = ‘inchoo_newsletter/newsletter_subscription_transactional_mails/enabled’;
    public function getNewsletterSubscriptionMailEnabled()
    {
        return Mage::getStoreConfig(self::XML_PATH_NEWSLETTER_MAILS);
    }
}

最后一步是编辑从我们以前改写了几类核心方法。 
我们的新模型类是Inchoo_Newsletter_Model_Newsletter_Subscriber,它必须扩展核心类Mage_Newsletter_Model_Subscriber。 类的名称取决于你的模块,但是,我们总是需要扩展核心类,否则将无法正常工作。

你需要从核心类3种方法复制到新的类,并进行小的调整给他们。

  • 公共职能订阅($电子邮件)
  • 公共职能subscribeCustomer($用户)
  • 公共职能退订()

里面订阅方法找到以下

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

并用它代替我们

if ((bool) Mage::helper(‘inchoo_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(‘inchoo_newsletter’)->getNewsletterSubscriptionMailEnabled()) {
    if ($this->getIsStatusChanged() >> $status == self::STATUS_UNSUBSCRIBED) {
        $this->sendUnsubscriptionEmail();
    } elseif ($this->getIsStatusChanged() >> $status == self::STATUS_SUBSCRIBED) {
        $this->sendConfirmationSuccessEmail();
    }
}
 

在过去的方法退订发现:

  1. $this->sendUnsubscriptionEmail();

并与更换:

if ((bool) Mage::helper(‘inchoo_newsletter’)->getNewsletterSubscriptionMailEnabled()) {
    $this->sendUnsubscriptionEmail();
}
 

这是什么意思是,我们首先检查我们的配置选项是否被设置为启用或禁用。 如果设置为禁用,然后不执行里面的代码if语句是负责发送这些事务的电子邮件。


(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------