3

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

一旦用户点击按钮,哪个文件、函数或哪个事件用于发送电子邮件place an order

4

2 回答 2

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(); ...
}
于 2013-10-29T05:38:15.687 回答
0

您需要更新 2 个文件。

对于一步结帐:\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();
}

对于多发货结帐:\app\code\core\Mage\Checkout\Model\Type\Multishipping.php

更新公开function createOrders()

消除: $order->sendNewOrderEmail();

添加:

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

希望会有所帮助!

于 2013-10-29T06:03:33.867 回答