博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
magento 如何在跳转到支付界面前自动发送邮件
阅读量:4202 次
发布时间:2019-05-26

本文共 1303 字,大约阅读时间需要 4 分钟。

在magento系统中,默认是在支付成功后发送确认订单邮件的,但是有时我们会碰到支付不成功的情 况或者客户不想支付,那我们怎样才能在支付前就发送订单邮件呢?首先我们打开appcodecoreMageCheckoutModelType文件夹下 的Onepage.php文件,找到saveOrder()方法,可以看到有这么几句:

        $order = $service->getOrder();

        if ($order) {
            Mage::dispatchEvent('checkout_type_onepage_save_order_after', array('order'=>$order, 'quote'=>$this->getQuote()));

            /**

             * a flag to set that there will be redirect to third party after confirmation
             * eg: paypal standard ipn
             */
            $redirectUrl = $this->getQuote()->getPayment()->getOrderPlaceRedirectUrl();
            /**
             * we only want to send to customer about new order when there is no redirect to third party
             */
            if(!$redirectUrl){
                try {
                    $order->sendNewOrderEmail();
                } catch (Exception $e) {
                    Mage::logException($e);
                }
            }

            // add order information to the session

            $this->_checkoutSession->setLastOrderId($order->getId())
                ->setRedirectUrl($redirectUrl)
                ->setLastRealOrderId($order->getIncrementId());

            // as well a billing agreement can be created

            $agreement = $order->getPayment()->getBillingAgreement();
            if ($agreement) {
                $this->_checkoutSession->setLastBillingAgreementId($agreement->getId());
            }
        }

可以发现magento系统是在保存订单数据后就立即跳转到支付URL上去了,而如果没有支付跳转,则会发送邮件。那我们现在就可以把

            if(!$redirectUrl){
                try {
                    $order->sendNewOrderEmail();
                } catch (Exception $e) {
                    Mage::logException($e);
                }
            }

中的if条件注释掉,这样就可以保证无论是否存在支付跳转,系统都会发送订单确认邮件。

转载地址:http://ejcli.baihongyu.com/

你可能感兴趣的文章
LoadRunner测试GWT
查看>>
负载测试项目成功的5个关键要素
查看>>
LoadRunner性能测试培训大纲
查看>>
LoadRunner测试J2ME的Socket程序
查看>>
《QTP自动化测试实践》要出第二版了!
查看>>
用LoadRunner开发开心网外挂
查看>>
QTP测试.NET控件CheckedListBox
查看>>
使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件
查看>>
用上帝之眼进行自动化测试
查看>>
为LoadRunner写一个lr_save_float函数
查看>>
PrefTest工作室全新力作-《性能测试与调优实战》课程视频即将上线
查看>>
质量度量分析与测试技术 培训大纲
查看>>
欢迎加入【亿能测试快讯】邮件列表!
查看>>
为什么我们的自动化测试“要”这么难
查看>>
LoadRunner性能脚本开发实战训练
查看>>
测试之途,前途?钱途?图何?
查看>>
测试设计与测试项目实战训练
查看>>
HP Sprinter:敏捷加速器
查看>>
单元测试培训PPT
查看>>
adb常用命令
查看>>