Magento默认支持Paypal付款方式。最近的一个Magento项目中,客户要求在用户通过Paypal付款跳转到支付界面时,会发送一封订单确认邮件给下单用户。无论用户是否成功付款。
该步骤可以通过扩展Paypal模块中的跳转方法实现。下面这段代码是默认的redirecAtion()方法。在跳转过程中,进行的都是订单信息相关的汇总收集。
public function redirectAction()
{ $session = Mage::getSingleton('checkout/session'); $session->setPaypalStandardQuoteId($session->getQuoteId()); $this->getResponse()->setBody($this->getLayout()->createBlock('paypal/standard_redirect')->toHtml()); $session->unsQuoteId(); }
通过将上面的代码修改为以下内容,可以完成给用户发送订单确认邮件的功能。完整代码如下。
public function redirectAction()
{ $session = Mage::getSingleton('checkout/session'); $session->setPaypalStandardQuoteId($session->getQuoteId()); /* 用于发送订单确认邮件的代码片段开始 */ $order = Mage::getModel('sales/order'); $order->load(Mage::getSingleton('checkout/session')->getLastOrderId()); $order->sendNewOrderEmail(); $order->setEmailSent(true); $order->save();
/* 用于发送订单确认邮件的代码片段结束 */ $this->getResponse()->setBody($this->getLayout()->createBlock('paypal/standard_redirect')->toHtml()); $session->unsQuoteId(); }