我创建了一种付款方式,并且运行良好。下订单时,默认情况下会发送一封电子邮件,但我只想在使用我自己的付款方式时防止这种情况发生。place an order
当用户选择我的付款方式并单击按钮时,我不希望发送电子邮件。
一旦用户点击按钮,哪个文件、函数或哪个事件用于发送电子邮件place an order
?
我创建了一种付款方式,并且运行良好。下订单时,默认情况下会发送一封电子邮件,但我只想在使用我自己的付款方式时防止这种情况发生。place an order
当用户选择我的付款方式并单击按钮时,我不希望发送电子邮件。
一旦用户点击按钮,哪个文件、函数或哪个事件用于发送电子邮件place an order
?
此事件在 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(); ...
}
您需要更新 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();
}
希望会有所帮助!