如何从Magento一页结帐中删除步骤?


18

我正在使用CE 1.7,目前正在尝试从Onepage结帐中删除送货,送货方式和付款步骤。我已经从中删除了步骤local\mage\checkout\block\onepage\abstract.php。我的问题来自尝试从帐单信息发展到我单击“继续”时进行审阅时,它加载的加载下一步图片比静止图片要多。任何想法将不胜感激。


由于我还不能发表评论,请您告诉我们并回答您的问题(在OnepageController.php中),以跳过CE 1.7中的付款。谢谢。
heaven7 2013年

嗨,@ Egregory,您如何进行此操作的更多信息?我正在尝试做同样的事情!
Edgar Quintero

@edgarQuintero我使用的代码是批准的答案和我提交的代码的组合。在新版本中,它也可能会有所不同,因为我在CE 1.7中进行了此操作
Egregory,2016年

@Egregory是的,我重写了Bijal Bhavsar发布的以下函数,还添加了您的OnepageController.php修改,只是为了确保清除缓存和会话,但仍然没有任何变化。我也是1.7。
Edgar Quintero

Answers:


13

尝试使用以下功能重写以下块文件:

改写类 Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

改写类 Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

改写类 Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

我希望现在不会发生与进度有关的问题。


我仍在学习Magento的重写功能。我将在新模块中创建此代码,还是仅在app \ code \ local部分中创建此代码?
Egregory 2013年

您必须创建新模块并重写文件。如何覆盖阻止文件?您可以查看inchoo.net/ecommerce/magento/...
Bijal Bhavsar

谢谢,我弄清楚了一切,一旦我进行了正确的更改并对所有内容开始工作进行了重写,onepagecontroller.php就让我挂了。
Egregory 2013年

@Egregory您能否分享您的onepagecontroller.php-您如何将其更改为开始工作的。谢谢!
srdan 2015年

它很旧,但我仍然尝试使用Magento 1.9.2,但无法正常工作
Altaf Hussain 2015年

4

2

@ heaven7我总体上在OnepageController.php中更改了这些位,我所做的不只是操纵它,而且我将列出我的代码,以便您可以看到我所做的更改。只需记住仅在本地副本而不是在核心文件夹中执行此操作。

    `protected $_sectionUpdateFunctions = array(
           /* 'payment-method'  => '_getPaymentMethodsHtml',
            'shipping-method' => '_getShippingMethodsHtml',*/
            'review'          => '_getReviewHtml',
        );    public function saveBillingAction()
        {
           if ($this->_expireAjax()){
            return;
        }
            if ($this->getRequest()->isPost()) {
                $data = $this->getRequest()->getPost('billing', array());
                $customerAddressId =  $this->getRequest()->getPost('billing_address_id', false);
                $result = $this->getOnepage()->saveBilling($data, $customerAddressId);

    //            if (!isset($result['error'])) {
    //                if ($this->getOnepage()->getQuote()->isVirtual()) {
                        $this->loadLayout('checkout_onepage_review');
                        $result['goto_section'] = 'review';
                        $result['update_section'] = array(
                            'name' => 'review',
                            'html' => $this->_getReviewHtml()
                        );
                    }
                    /*elseif (isset($data['use_for_shipping']) && $data['use_for_shipping'] == 1) {
                        $this->saveShippingMethodAction();
                        $this->loadLayout('checkout_onepage_review');
                        $result['goto_section'] = 'review';
                        $result['update_section'] = array(
                            'name' => 'review',
                            'html' => $this->_getReviewHtml()
                        );

                        $result['allow_sections'] = array('shipping','review');
                        $result['duplicateBillingInfo'] = 'true';
                    }*/
                   /* else {
                        //$result['goto_section'] = 'shipping';
                        //TODO There is an error with loading the layout of the Review tab.
                        $result['goto_section'] = 'review';
                    }*/
               // }

                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

            }     
     public function saveShippingAction()
    {

       if($this->_expireAjax()){
           return;
       }
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost('shipping', array());
            $customerAddressId = $this->getRequest()->getPost('shipping_address_id', false);
            $result = $this->getOnepage()->saveShipping($data, $customerAddressId);

            if (!isset($result['error'])) {
                $this->saveShippingMethodAction();
                $this->loadLayout('checkout_onepage_review');
                $result['goto_section'] = 'review';
                $result['update_section'] = array(
                    'name' => 'review',
                    'html' => $this->_getReviewHtml()
                );
            }
            $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
        }
    }

public function saveShippingMethodAction()
    {
        if ($this->_expireAjax()) {
            return;
        }
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost('shipping_method', '');
            $result = $this->getOnepage()->saveShippingMethod($data);
            /*
            $result will have erro data if shipping method is empty
            */
            if(!$result) {
                Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method',
                        array('request'=>$this->getRequest(),
                            'quote'=>$this->getOnepage()->getQuote()));
                $this->getOnepage()->getQuote()->collectTotals();
                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

                $result['goto_section'] = 'review';
                $result['update_section'] = array(
                    'name' => 'review',
                    'html' => $this->_getReviewHtml()
                );
            }
            $this->getOnepage()->getQuote()->collectTotals()->save();
            $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
        }
    }

1

1
仅链接帖子对于该网站的格式质量很差。请扩大您的答案。
philwinkle

我很感激响应,但是这些内容更多地集中在ce 1.6而非1.7上,它们的位置有所不同,例如1.7中的步骤代码位于Abstract.php文件中。
Egregory
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.