Opencart - пропустите шаг 2 - PullRequest
0 голосов
/ 10 ноября 2011

Я использую OpenCart v. 1.4.9.3 и пытаюсь пропустить шаг 2 ->

index.php?route=checkout/guest_step_2 

Нужно ли модифицировать контроллер?

p / s: эта открытая тележка только для отправки запроса, нет необходимости оплаты или комментария, я стараюсь минимизировать все шаги.

1 Ответ

2 голосов
/ 10 ноября 2011

Несмотря на то, что пропустить доставку можно, пропустить платеж - это совсем другое.Вам нужно будет использовать что-то вроде наложенного платежа для типа платежа, а затем установить тип оплаты сеанса в guest_step_2.Вот код сообщения для этой страницы, поэтому вам просто нужно удалить сообщение и установить код платежа (в методе наложенным платежом это «треска»), поэтому

    if (($this->request->server['REQUEST_METHOD'] == 'POST') && !isset($this->request->post['coupon']) && $this->validate()) {
        if (isset($this->request->post['shipping_method'])) {
            $shipping = explode('.', $this->request->post['shipping_method']);

            $this->session->data['shipping_method'] = $this->session->data['shipping_methods'][$shipping[0]]['quote'][$shipping[1]];
        }

        $this->session->data['payment_method'] = $this->session->data['payment_methods'][$this->request->post['payment_method']];

        $this->session->data['comment'] = $this->request->post['comment'];

        $this->redirect(HTTPS_SERVER . 'index.php?route=checkout/guest_step_3');
    }

становится

    if (isset($this->request->post['shipping_method'])) {
        $shipping = explode('.', $this->request->post['shipping_method']);

        $this->session->data['shipping_method'] = $this->session->data['shipping_methods'][$shipping[0]]['quote'][$shipping[1]];
    }

    $this->session->data['payment_method'] = $this->session->data['payment_methods']['cod'];

    $this->session->data['comment'] = ''; // Make comment empty

    $this->redirect(HTTPS_SERVER . 'index.php?route=checkout/guest_step_3');

Вам также нужно переместить это ниже этой строки

$this->session->data['payment_methods'] = $method_data;

обратите внимание, что это просто концепция, у меня не было возможности проверить это для вас, но теоретически это будетРабота.Вы также можете, вероятно, избавиться от этого куска кода, хотя я оставил его выше

    if (isset($this->request->post['shipping_method'])) {
        $shipping = explode('.', $this->request->post['shipping_method']);

        $this->session->data['shipping_method'] = $this->session->data['shipping_methods'][$shipping[0]]['quote'][$shipping[1]];
    }
...