2013-06-26 32 views

回答

1

中只看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> 

所以,你需要在应用程序更改功能initController()/代码/本地/ Magenthemes/Onestepcheckout/Model/Observer.php。这里是:

public function initController($observer) { 
    if (Mage::helper('onestepcheckout')->isActive()) { 
     $observer->getControllerAction()->_redirect('onestepcheckout'); 
    } 
} 

此功能只是检查是否启用扩展和从结帐/ onepage重定向到onestecheckot。您可以使用这样的事情:

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'); 
    } 
} 

在结果,默认过程将去收银台/ onepage并在需要时重定向到一步法结账。

+0

非常感谢您的帮助,但我已经完成了这项任务,巧合的是我按照您的建议完成了一些任务。这是实现这一目标的最佳途径。谢谢一吨亚光。 –