是否可以将浏览器重定向到单页结帐中的第n步?如果是这样,怎么会去做呢?
我正在处理一个付款模块,并且有一种“取消”操作,我想让用户返回结帐中您选择付款方式的步骤。
我目前将用户返回到结账的第一步,如下所示:
$this->_redirect('checkout/onepage', array('_secure'=>true));
另一个问题是我不能一直工作,在某些浏览器中,我真的不喜欢“有时”命名这类作品。这是已知和/或普遍接受的东西吗?关于此,我几乎没有实际的信息,但我有客户对这种行为的抱怨。他们通常不会给我任何细节,所以这是一个死胡同。
答案 0 :(得分:7)
在PHP中
$step = Mage::app()->getRequest()->getParam('step');
$stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review');
if (($step) && (in_array($step,$stepCodes)) && ($this->getActiveStep() == 'billing')) {
$checkout = Mage::getSingleton('checkout/type_onepage');
$checkout->saveBilling(Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress()->toArray(),false);
$checkout->saveShipping(Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->toArray(),false);
$checkout->saveShippingMethod(Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getShippingMethod());
$activestep = Mage::app()->getRequest()->getParam('step');
}
else
if($this->getActiveStep()) {
$activestep = $this->getActiveStep();
}
在javascript中
accordion.openSection('opc-<?php /* edit */ echo $activestep; ?>');
答案 1 :(得分:3)
很抱歉不清楚。打开单页结帐页面的模板。 它是app / design / frontend / default / default / template / checkout / onepage.phtml 在文件中添加
<?php
//if (your cancel condition)
{
echo
'<script type="text/javascript">
checkout.gotoSection(\'checkout-step-review\');
</script>';
}
?>
这将使用户完成您需要的步骤。您必须决定用户进入该步骤的条件。
答案 2 :(得分:3)
我想做同样的事情,但无法弄清楚如何在付款步骤中打开单页结帐。
最后,我使用了jQuery和一个ajax调用,所以我可以在更改页面后调用javascript代码:
jQuery('body').load(failure, {}, function () {
// set the magento onepage checkout accordion to the payment section
checkout.gotoSection('payment');
});
答案 3 :(得分:1)
Rick指的是结帐中的“步骤”不是RESTful,而是Ajaxified步骤,它们都在同一页面上,垂直手风琴实际上只是一组由javascript操纵的分区功能。您需要将javascript设置为正确的步骤,如他所述。