Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制向Magento中的客户发送订单电子邮件_Magento - Fatal编程技术网

如何限制向Magento中的客户发送订单电子邮件

如何限制向Magento中的客户发送订单电子邮件,magento,Magento,我已经创建了一个付款方式,它的工作良好。下订单时,默认情况下会发送一封电子邮件,但我只想在使用我自己的付款方式时防止这种情况。当用户选择我的付款方式并单击下单按钮时,我不希望发送电子邮件 当用户单击“下单”按钮时,使用哪个文件、函数或事件发送电子邮件?此事件在签出/控制器/OnePageController/SuccessAction中触发。 Mage::dispatchEvent(“签出\一页\控制器\成功\操作”)//第197行 我建议您查看下面的文件和方法 /app/code/core/M

我已经创建了一个付款方式,它的工作良好。下订单时,默认情况下会发送一封电子邮件,但我只想在使用我自己的付款方式时防止这种情况。当用户选择我的付款方式并单击
下单
按钮时,我不希望发送电子邮件


当用户单击“下单”按钮时,使用哪个文件、函数或事件发送电子邮件?

此事件在签出/控制器/OnePageController/SuccessAction中触发。 Mage::dispatchEvent(“签出\一页\控制器\成功\操作”)//第197行

我建议您查看下面的文件和方法

/app/code/core/Mage/Checkout/controllers/OnepageController.php

public function successAction(){...
   Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId))); ...
}

/app/code/core/Mage/Checkout/Model/Type/Onepage.php

public function saveOrder(){... 
   $order->sendNewOrderEmail(); ...
}

有2个文件需要更新

对于onestepcheckout:
\app\code\core\Mage\Checkout\Model\Type\Onepage.php

更新公共函数saveOrder()

删除:
$order->sendNewOrderEmail()

加:

对于multishippingcheckout:
\app\code\core\Mage\Checkout\Model\Type\Multishipping.php

更新公共
函数createOrders()

删除:
$order->sendNewOrderEmail()

加:

希望会有帮助

$orders->getEmailSent()您可以限制用户发送电子邮件。
if($order->getPayment()->getMethod()!="YOUR_CUSTOM_PAYMENT_METHOD_NAME") {
    $order->sendNewOrderEmail();
}
if($order->getPayment()->getMethod()!="YOUR_CUSTOM_PAYMENT_METHOD_NAME") {
    $order->sendNewOrderEmail();
}