我们正在运行magento 1.8.x.x
完成单页结账后,成功页面为空白。
我检查过以下内容:
无功/日志/ exception.log apache error_log php error.log
并且没有明显的错误。关于这个问题的大多数在线资源说要检查日志以找出这个问题的线索,但我没有看到任何。如果我故意破坏一段代码,我可以确认正在记录其他异常。
Magento - returns blank / empty success page
此stackoverflow页面建议mage:log()每行几行的successAction方法,以查看它失败的位置。这就是我所做的(zzz旁边的数字对应于OnepageController.php文件中的行):
public function successAction()
{
Mage::log('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz277');
$session = $this->getOnepage()->getCheckout();
if (!$session->getLastSuccessQuoteId()) {
$this->_redirect('checkout/cart');
return;
}
Mage::log('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz283');
$lastQuoteId = $session->getLastQuoteId();
$lastOrderId = $session->getLastOrderId();
$lastRecurringProfiles = $session->getLastRecurringProfileIds();
if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
$this->_redirect('checkout/cart');
return;
}
Mage::log('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz291');
$session->clear();
$this->loadLayout();
$this->_initLayoutMessages('checkout/session');
Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId)));
$this->renderLayout();
Mage::log('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz297');
}
我可以确认successAction函数似乎按照我的日志文件成功完成:
2014-02-26T17:07:08+00:00 DEBUG (7): zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz277
2014-02-26T17:07:08+00:00 DEBUG (7): zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz283
2014-02-26T17:07:08+00:00 DEBUG (7): zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz291
2014-02-26T17:07:09+00:00 DEBUG (7): zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz297
我已检查订单似乎在后端成功完成。
我还确认checkout.xml文件正在调用正确的文件:
<checkout_onepage_success translate="label">
<label>One Page Checkout Success</label>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
<reference name="content">
<block type="checkout/onepage_success" name="checkout.success" template="checkout/success.phtml"/>
</reference>
</checkout_onepage_success>
我真的在我的智慧结束。我完全不知道在没有错误信息的情况下去哪里寻找问题。
我以为我能够逐行调试什么是失败的,但我完全不知道怎么做。
天空的任何建议,资源或礼物都将受到赞赏。我不知道还能做什么。
修改
所以我终于找到了问题所在。有一个PDF扩展插入成功页面,允许客户端以PDF格式打印订单。此扩展在后端被禁用,启用后,成功页面再次运行。
我通过在renderLayout()下面放置一个XML转储来找到它;使用以下代码的successAction函数中的方法:
header("Content-Type: text/xml");
die(Mage::app()->getConfig()->getNode()->asXML());
我搜索了“成功”,发现这个pdf扩展插入了onepage_success。