Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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 Magento将一步签出作为一个单独的签出流,并保持默认流不变_Php_Magento_Magento 1.7_Checkout - Fatal编程技术网

Php Magento将一步签出作为一个单独的签出流,并保持默认流不变

Php Magento将一步签出作为一个单独的签出流,并保持默认流不变,php,magento,magento-1.7,checkout,Php,Magento,Magento 1.7,Checkout,我在magento工作 我想为特定类型的订单实现一步签出。除此之外,我希望保持magento默认的单页签出流不变 可能吗?我曾尝试谷歌,但不幸的是没有得到任何成功 谢谢, 米兰查看onestepcheckout扩展中的config.xml,您将看到下一个事件: <controller_action_predispatch_checkout_onepage_index> <observers> <magenthemes_onestepcheckout_ob

我在magento工作

我想为特定类型的订单实现一步签出。除此之外,我希望保持magento默认的单页签出流不变

可能吗?我曾尝试谷歌,但不幸的是没有得到任何成功

谢谢,
米兰

查看onestepcheckout扩展中的config.xml,您将看到下一个事件:

<controller_action_predispatch_checkout_onepage_index>
  <observers>
    <magenthemes_onestepcheckout_observer>
      <type>singleton</type>
      <class>onestepcheckout/observer</class>
      <method>initController</method>
    </magenthemes_onestepcheckout_observer>
  </observers>
</controller_action_predispatch_checkout_onepage_index>
此函数只需检查扩展是否已启用,并从checkout/onepage重定向到onestepcheckot。您可以使用以下内容:

public function initController($observer) {
    $event = $observer->getEvent();
    $order = $event->getOrder();
    $use_onestep = true;// do some checks here using $order and set result (true|false)
    if (Mage::helper('onestepcheckout')->isActive() && $use_onestep) {
        $observer->getControllerAction()->_redirect('onestepcheckout');
    }
}

结果,默认情况下,流程将转到checkout/onepage,并在需要时重定向到onestep checkout

非常感谢你的帮助,但我已经完成了这项任务,巧合的是,我已经按照你的建议做了一些事情。这是实现这一目标的最佳途径。谢谢你,马特。
public function initController($observer) {
    $event = $observer->getEvent();
    $order = $event->getOrder();
    $use_onestep = true;// do some checks here using $order and set result (true|false)
    if (Mage::helper('onestepcheckout')->isActive() && $use_onestep) {
        $observer->getControllerAction()->_redirect('onestepcheckout');
    }
}