Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 链接到onepage签出中的特定步骤_Php_Zend Framework_Magento - Fatal编程技术网

Php 链接到onepage签出中的特定步骤

Php 链接到onepage签出中的特定步骤,php,zend-framework,magento,Php,Zend Framework,Magento,是否可以将浏览器重定向到onepage签出中的第n步?如果是这样,人们将如何着手去做呢 我正在处理一个付款模块,有一种“取消”操作,我想让用户返回到您选择付款方式的结账步骤 我当前将用户返回到签出的第一步,如下所示: $this->_redirect('checkout/onepage', array('_secure'=>true)); 另一个问题是,我不是一直在工作,在某些浏览器中,我真的不想称这种工作为“有时”。这是已知的和/或普遍接受的吗?我几乎没有关于这方面的实际信息,但

是否可以将浏览器重定向到onepage签出中的第n步?如果是这样,人们将如何着手去做呢

我正在处理一个付款模块,有一种“取消”操作,我想让用户返回到您选择付款方式的结账步骤

我当前将用户返回到签出的第一步,如下所示:

$this->_redirect('checkout/onepage', array('_secure'=>true));

另一个问题是,我不是一直在工作,在某些浏览器中,我真的不想称这种工作为“有时”。这是已知的和/或普遍接受的吗?我几乎没有关于这方面的实际信息,但我收到了客户对这种行为的投诉。他们通常不会给我任何细节,所以这是一条死胡同。

很抱歉没有说清楚。打开onepage签出页面的模板。 它是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>'; 
}
?> 


这将使用户转到您需要的步骤。您必须决定将用户带到步骤的条件

Rick指的是结帐中的“步骤”不是RESTful的,而是一个轴化的步骤,它们都在同一个页面上,垂直手风琴实际上只是由javascript函数操纵的一组分割。您需要将javascript设置为他所说的正确步骤

签出/onepage.phtml: 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; ?>');
accordion.openSection('opc-');

我也想做同样的事情,但不知道如何在付款步骤打开一页结账

最后,我使用jQuery和ajax调用,以便在更改页面后调用javascript代码:

    jQuery('body').load(failure, {}, function () {
        // set the magento onepage checkout accordion to the payment section
        checkout.gotoSection('payment');
    });

我不知道我会不会跟着你去那里。。你能解释一下吗?你指的是哪一页,我如何在控制器中重定向到结帐页?谢谢,现在我完全明白了!单凭这一点是行不通的。我还必须加载不同的步骤并保存数据。听起来好像没有“标准化”的方法让用户进入某个步骤。这是一个正确的假设吗?考虑到客户已经准备好了报价,我怀疑加载结账可以简化。但这就是我工作的方式。如果有人能从中提高,请!嗨@Peter Lindqvist,你找到另一个解决方案了吗?如果没有,你能再解释一下这个解决方案吗?谢谢