OpenCart — как убрать страну и регион в оформлении заказа


Вам могут понравиться и эти статьи...

комментариев 38

Если Вы хотите добавить код в свой комментарий, заключите его в теги <pre lang="php"></pre>

  1. ginger:

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

    SyntaxError: Unexpected token <
    OK

    Fatal error: Call to a member function getZone()
    on a non-object in Z:\home\ocStore\www\catalog\controller\checkout\guest.php on line 235

    В чем может быть проблема? Спасибо!

    • jul jul:

      Не могла ответить на Ваш вопрос, так как была в отъезде. ginger, если вопрос еще актуален — напишите заново.

    • Евгений:

      У меня бала такая же проблема, и больше скажу не одна! Всё сделал по пунктам данной статьи. да конечно форма получилась в точности такая же, как и показана на фото только вот работать отказалась на прочь!
      Ввожу тестовые данные в поля помечеными звёздочкой нажимаю продоолжить и тут на тебе! Появляется окошко на фоне сайта и перечислены аж 4 ошибки в файле не помню каком но не в том который я правил. Была и та тоже ошибка выше (Fatal error: Call to a member function getZone()
      on a non-object in Z:\home\ocStore\www\catalog\controller\checkout\guest.php on line 235)
      Сразу я конечно растерялся что делать с тем самым файлом который ещё не трогал, но моё подсознание говорило что это пустяковая ошибка, благо я сам программист и язык PHP хорошо знаю.

      Пошол я по пути указанному в ошибки и открыл тот самый файл дремивиром. Изучил его функцию и понял что нужно эти строчки закомментировать просто я применял комментарии для CSS файлов но можно и для PHP.
      Более того проблема не устранилась!!!

      После ввода тестовых данных, после нажатия продолжить появляется сного окошко с несколькими ошибками но в одной строке! но уже совсем в другом файле который так же я не трогал!
      Тут я уже спокойно открыл его и закоментил строку в которой били эти ошибки, проблема была решена!

      Но не тут то было! После ввода тестовых данных, после нажатия продолжить, всё идёт без всяких ошибок, подтверждаю заказ, дальше нам сообщается что ваш заказ принят и т п. В общем заказ сделан без ошибок а захожу в админ-панель но заказа нету!!!
      Вот ещё проблема. Но её я решил в течении 15-20 минут. в последнем правившем файле боло 4 ошибки в одной строке я её закоментил. Но нужно было всего закоментить 4 эти ошибки а в той строке были ещё нужные функции.

      Проблема будет найти эти ошибки человеку не знающему PHP код. Если у кого есть подобные ошибки и проблемы я имогу написать статью для данного блога.
      Пишите чем смогу тем помогу.

      с уважением Евгений

  2. Kir:

    Версия 1.5.5.1 все работает по инструкции. Спасибо большое!

  3. Kir:

    Вот примерно такое Notice: Undefined index: fax in /var/www/store/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_company in /var/www/store/catalog/model/checkout/order.php on line 4Notice: Undefined index: payment_company_id in /var/www/store/catalog/model/checkout/order.php on line 4

    … и еще кое-где.

    • jul jul:

      Kir, данные ошибки не связаны со скрытием страны и региона. Движок сообщает о том, что в строке у Вас имеется указание вывода факса и компании, Вы видимо их ранее удалили, а в этой строке не почистили. Либо проверьте аккуратно ли закомментировали код со страной и регионом в этой строке (хотя они с факсом и рядом не стоят).

  4. Леонид:

    Подскажите в чем может быть проблема, все вроде закомментил правильно, и пропускает на следующий шаг, но после того как почистил кукисы вылазит ошибка: Undefined index: shipping_address in C:\home\localhost\www\brelok\catalog\controller\checkout\guest.php on line 316

    • jul jul:

      В shipping_address как раз содержится та информация, которую мы скрывали: страна и регион. Соответственно, движок сообщает о том, что остался код, который пытается выевсти то, чего уже нет и он не закомментирован. Закомментируйте строку/строки с этим кодом.

  5. Евгений:

    Добрый день! Не подскажете после скрытия и комментирования все было в порядке , рпопускала на 3-ий шаг, а после чистки кукисов , велезает

    Undefined index: shipping_address in C:\home\localhost\www\brelok\catalog\controller\checkout\guest.php on line 316

    в shipping_address.php надо копаться?

    Спасибо, статья отличная.

    • jul jul:

      Добрый день, Евгений.
      В переменной shipping_address как раз содержится та информация, которую мы скрывали: страна и регион. Соответственно, движок сообщает о том, что остался код, который пытается выевсти то, чего уже нет и он не закомментирован. Закомментируйте строку/строки с этим кодом в guest.php.

      • Евгений:

        Да, но я там все закомментировал не нужное и осталось лишь такое выражение:

        if ($this->session->data[‘guest’][‘shipping_address’]) {
        $this->session->data[‘guest’][‘shipping’][‘firstname’] = $this->request->post[‘firstname’];
        $this->session->data[‘guest’][‘shipping’][‘lastname’] = $this->request->post[‘lastname’];
        }

        • Евгений:

          Все, разобрался сам, случайно закомментировал немного лишнего :) но теперь в yandex-money.php ошибка из за отсутствия региона ..буду ломать голову , как не пытался там поправить ничего не выходит, он просто перестает работать. Спасибо за статью и помощь!

          • jul jul:

            Главное, что нашли корень проблемы) Удачи с оставшимися настройками!

  6. Ирина:

    Спасибо большое за такие полезные статьи

  7. Si:

    Добрый день.
    Подскажите пожалуйста, а сможете помочь убрать эти же поля из K2 sore joomla? Уже который день ломаю голову, понимаю, что компоненты очень похожи, но в K2 store javascript это отрабатывает, и никак не получается поправить — не могу додуматься

    • jul jul:

      С Джумлой очень уж на «вы», так что какие файлы с чем связаны не в курсе. Соотвественно, и что править, к сожалению, не подскажу.

  8. Alex:

    Добрый вечер. А как сделать все наоборот с небольшими изменениями, тоесть не удалять етих два поля, а поместить в другое место.
    как поставить страну и регион на главную страницу?
    чтоби покупатель сразу после попадания на сайт мог вибрать страну и регион доставки товара? Но оставить связь с окончательним оформлениям заказа

  9. МАКСИМ:

    Добрый день. Убрал все как прописано, но шах 6 Подтверждение заказа. пропал . ничего нет . как исправить ошибку. Или возможно все стоит вернуть. КАК ? СПАСИБО

  10. sh2000v:

    После внесения вышеуказанных изменений невозможно завести заказ вручную из админки, так как выдаёт сообщение, что не введён регион — хотя регион введён.
    Часто клиенты делают заказ по телефону и приходится его заводить в систему через админку, чтобы была статистика и учёт покупателей. Не мешало бы добавить вариант как теперь убрать контроль обязательных полей при заведении заказа через админку.

  11. Прохожий:

    В версии 1.5.6 этот фокус не работает, к сожалению((

  12. Здравствуйте. Спасибо за статью.

    выдает ошибку как у Евгения после очистки кукисов
    SyntaxError: Unexpected token <
    OK
    Notice: Undefined index: shipping_address in /home/shbb/public_html/ochiochi.ru/catalog/controller/checkout/guest.php on line 325[]

    но я не пойму где напортачил, вот текст начиная с 325 строки не закоменчено только имя и город:
    if ($this->session->data[‘guest’][‘shipping_address’]) {
    $this->session->data[‘guest’][‘shipping’][‘firstname’] = $this->request->post[‘firstname’];
    /*$this->session->data[‘guest’][‘shipping’][‘lastname’] = $this->request->post[‘lastname’];*/
    /*$this->session->data[‘guest’][‘shipping’][‘company’] = $this->request->post[‘company’];*/
    /*$this->session->data[‘guest’][‘shipping’][‘address_1’] = $this->request->post[‘address_1’];*/
    /*$this->session->data[‘guest’][‘shipping’][‘address_2’] = $this->request->post[‘address_2’];*/
    /*$this->session->data[‘guest’][‘shipping’][‘postcode’] = $this->request->post[‘postcode’];*/
    $this->session->data[‘guest’][‘shipping’][‘city’] = $this->request->post[‘city’];
    /*$this->session->data[‘guest’][‘shipping’][‘country_id’] = $this->request->post[‘country_id’];
    $this->session->data[‘guest’][‘shipping’][‘zone_id’] = $this->request->post[‘zone_id’];*/

    /*if ($country_info) {
    $this->session->data[‘guest’][‘shipping’][‘country’] = $country_info[‘name’];
    $this->session->data[‘guest’][‘shipping’][‘iso_code_2’] = $country_info[‘iso_code_2’];
    $this->session->data[‘guest’][‘shipping’][‘iso_code_3’] = $country_info[‘iso_code_3’];
    $this->session->data[‘guest’][‘shipping’][‘address_format’] = $country_info[‘address_format’];
    } else {
    $this->session->data[‘guest’][‘shipping’][‘country’] = »;
    $this->session->data[‘guest’][‘shipping’][‘iso_code_2’] = »;
    $this->session->data[‘guest’][‘shipping’][‘iso_code_3’] = »;
    $this->session->data[‘guest’][‘shipping’][‘address_format’] = »;
    }

    if ($zone_info) {
    $this->session->data[‘guest’][‘shipping’][‘zone’] = $zone_info[‘name’];
    $this->session->data[‘guest’][‘shipping’][‘zone_code’] = $zone_info[‘code’];
    } else {
    $this->session->data[‘guest’][‘shipping’][‘zone’] = »;
    $this->session->data[‘guest’][‘shipping’][‘zone_code’] = »;
    }

    // Default Shipping Address
    $this->session->data[‘shipping_country_id’] = $this->request->post[‘country_id’];
    $this->session->data[‘shipping_zone_id’] = $this->request->post[‘zone_id’];
    $this->session->data[‘shipping_postcode’] = $this->request->post[‘postcode’];*/
    }

  13. Вадим:

    Здравствуйте! У меня регионы написаны на английском языке! Как можно их перевести на русский?

    • jul jul:

      Вадим, скачайте скрипт с локализацией стран и регионов здесь. Загрузите russian_countries.php в корневую папку магазина, затем наберите в адресной строке имя-вашего-сайта.com/russian_countries.php. Очистите системный кеш и проверьте перевод стран и регионов, должны отображаться корректно. На всякий случай, перед запуском скрипта, сделайте бекап БД.

  14. nix:

    выдовало ошибку в файле catalogcontrollercheckoutguest.php
    в инструкции выше, удалял строки 280-304 и 313-314, но не заметил, и удалил лишний код, не оставил строки 304-313. будьте внимательны.

  15. Кс:

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

  16. Подскажите:
    1. Как убрать из регистрации нового пользователя поля (страна и регион, факс, компания, id компании, адрес2, индекс), без последствий.
    2. Тоже самое при оформлении быстрого заказа.
    3. Тоже самое при оформлении заказа, но уже через регистрацию нового пользователя.
    Как ни странно, но за это отвечают 3 формы.
    Спасибо.

  17. Спасибо автору блога!

  18. Спасибо, помогло очень!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *