Làm cách nào để xóa các bước khỏi thanh toán Magento Onepage?


18

Tôi đang sử dụng CE 1.7 và tôi hiện đang cố gắng loại bỏ các bước vận chuyển, phương thức giao hàng và các bước thanh toán khỏi thanh toán Onepage. Tôi đã loại bỏ các bước từ local\mage\checkout\block\onepage\abstract.php. Vấn đề của tôi xuất hiện khi cố gắng chuyển từ thông tin thanh toán sang xem xét khi tôi nhấp vào tiếp tục, nó tải hình ảnh bước tiếp theo hơn là ngồi yên. Bất kỳ ý tưởng sẽ được nhiều đánh giá cao.


Vì tôi không thể nhận xét (chưa), vui lòng cho chúng tôi biết và trả lời câu hỏi của bạn, bạn đã làm gì (trong OnepageControll.php), để bỏ qua thanh toán trong CE 1.7. Cảm ơn.
thiên đường7

Xin chào @Egregory, có thêm thông tin nào về cách bạn đã làm điều này không? Tôi đang cố gắng làm điều tương tự!
Edgar Quintero

@edgarQuintero mã tôi đã sử dụng là sự kết hợp giữa câu trả lời được phê duyệt và mã tôi đã gửi. Nó cũng có thể khác trong các phiên bản mới hơn khi tôi thực hiện điều này trong CE 1.7
Tập hợp

@Egregory Yea Tôi viết lại các chức năng dưới đây được đăng bởi Bijal Bhavsar và cũng đã thêm các sửa đổi OnepageControll.php của bạn, xóa bộ nhớ cache và phiên để đảm bảo, nhưng vẫn không thay đổi. Tôi cũng trên 1.7.
Edgar Quintero

Câu trả lời:


13

Cố gắng viết lại các tập tin khối bên dưới với các chức năng sau:

Viết lại lớp Mage_Checkout_Block_Onepage_Billing

    public function canShip()
    {
        return false;
    }

Viết lại lớp Mage_Checkout_Block_Onepage_Shipping_Method

    public function isShow()
    {
        return false;
    }

Viết lại lớp Mage_Checkout_Block_Onepage_Shipping

    public function isShow()
    {
          return false;
    }

Tôi hy vọng vấn đề bây giờ liên quan đến tiến độ sẽ không xảy ra.


Tôi vẫn đang học các khả năng viết lại của Magento. Tôi sẽ tạo cái này trong một mô-đun mới hay tôi chỉ tạo cái này trong phần ứng dụng \ code \ local?
Tập hợp

Bạn phải tạo mô-đun mới và viết lại tập tin. Làm thế nào để ghi đè tập tin khối? Bạn có thể xem lại inchoo.net/ec Commerce / magento / Mạnh
Bijal Bhavsar

Cảm ơn tôi đã tìm ra mọi thứ, onepagecontroll.php đã treo tôi lên khi tôi thực hiện các thay đổi chính xác và viết lại cho mọi thứ bắt đầu hoạt động.
Tập hợp

@Egregory bạn có thể vui lòng chia sẻ onepagecontroll.php của bạn - bạn đã thay đổi nó như thế nào để bắt đầu làm việc. Cảm ơn!
srdan

Nó đã cũ, nhưng tôi vẫn đã thử với Magento 1.9.2 và nó không hoạt động
Altaf Hussain

4

2

@ Heaven7 Tôi đã thay đổi các bit này trong OnepageControll.php nói chung tôi đã làm nhiều hơn là thao tác điều này nhưng tôi sẽ liệt kê mã của mình để bạn có thể thấy chính xác những gì tôi đã thay đổi. Chỉ cần nhớ làm điều này chỉ trong một bản sao cục bộ và không có trong thư mục cốt lõi.

    `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
Liên kết chỉ bài viết có chất lượng kém cho định dạng của trang web này. Hãy mở rộng câu trả lời của bạn.
philwinkle

Tôi đánh giá cao phản hồi nhưng những điều này tập trung nhiều hơn vào ce 1.6 so với 1.7 có một số khác biệt trong đó mọi thứ được đặt giống như mã bước trong 1.7 được đặt trong tệp Abstract.php.
Tập hợp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.