我创建了一种付款方式,但工作正常。在下订单时,默认情况下会发送一封电子邮件,但我希望仅在使用我自己的付款方式时才阻止该订单。当用户选择我的付款方式并点击place an order
按钮时,我不希望发送电子邮件。
用户点击place an order
按钮后,使用哪个文件,功能或哪个事件发送电子邮件?
答案 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();
}
希望会有所帮助!