不是每个人都满意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);
}
}
最后一步是编辑从我们以前改写了几类核心方法。 你需要从核心类3种方法复制到新的类,并进行小的调整给他们。
里面订阅方法找到以下
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();
}
}
在过去的方法退订发现:
并与更换:
if ((bool) Mage::helper(‘inchoo_newsletter’)->getNewsletterSubscriptionMailEnabled()) {
$this->sendUnsubscriptionEmail();
}
这是什么意思是,我们首先检查我们的配置选项是否被设置为启用或禁用。 如果设置为禁用,然后不执行里面的代码if语句是负责发送这些事务的电子邮件。 (责任编辑:好模板) |