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

时间:2013-10-29 04:40:40

标签: magento

我创建了一种付款方式,但工作正常。在下订单时,默认情况下会发送一封电子邮件,但我希望仅在使用我自己的付款方式时才阻止该订单。当用户选择我的付款方式并点击place an order按钮时,我不希望发送电子邮件。

用户点击place an order按钮后,使用哪个文件,功能或哪个事件发送电子邮件?

2 个答案:

答案 0 :(得分:0)

此事件在Checkout / controllers / OnePageController / SuccessAction中触发。 法师:: dispatchEvent( 'checkout_onepage_controller_success_action'); //第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(); ...
}

答案 1 :(得分:0)

有2个文件需要更新。

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

更新public function saveOrder()

删除: $order->sendNewOrderEmail();

添加:

if($order->getPayment()->getMethod()!="YOUR_CUSTOM_PAYMENT_METHOD_NAME") {
    $order->sendNewOrderEmail();
}

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

更新公开function createOrders()

删除: $order->sendNewOrderEmail();

添加:

if($order->getPayment()->getMethod()!="YOUR_CUSTOM_PAYMENT_METHOD_NAME") {
    $order->sendNewOrderEmail();
}

希望会有所帮助!