2013-06-26 35 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

非常感謝您的幫助,但我已經完成了這項任務,巧合的是我按照您的建議完成了一些任務。這是實現這一目標的最佳途徑。謝謝一噸亞光。 –