Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Подружить модуль Доставка в зависимости от расстояния с Simple 4.9.4


Recommended Posts

Здравствуйте, форумчане!
Требуется специалист по Opencart.
Задачи на самом деле две.

1 - основная задача в названии темы. Установлен Opencart Русская сборка версии 2.1.0.2.
Модуль Simple последней версии - 4.9.4. Модуль доставки был изначально от автора toporchillo, но доработанный под версию 2,1, ссылку на него не пощу, дам в личку - я не в курсе, возможно здесь запрещена реклама сторонних ресурсов.

Попробовал своими силами сделать - не вышло. Если вывожу дампом в контроллере simplecheckout_shipping то, что возвращает модуль доставки, на странице появляется карта и ведется расчет. Если убираю - пропадает. В общем, своих мозгов и опыта пока не хватает довести до ума.

2 задача - сделать скрытие|появление полей в зависимости от выбора способа доставки. Сейчас в модуле Simple присутствует зависимость появления/скрытия блока "Адрес доставки" целиком, но это не совсем то, что мне нужно по макету. Более подробно в личку.

Змінено користувачем hard176
Надіслати
Поділитися на інших сайтах


С первой задачей справился самостоятельно. Вот, если кому-то надо, может пригодится.

В файле model/mileage.php разделил отдельно по переменным скрипт и title, вместо строки:

$method_title = $this->language->get('text_title')
            .(!$error ? $this->getRouteMap($this->config->get('mileage_store'), $address, intval($is_city)) : '');

оставил только:

$method_title = $this->language->get('text_title');

Далее, где идет формирование массива $method_data добавил в него строчку, в итоге получилось вот так:

if ($quote_data) {
    $method_data = array(
        'code'       => 'mileage',
        'title'      => $method_title,
        'quote'      => $quote_data,
        'sort_order' => $this->config->get('mileage_sort_order'),
        'error'      => false, //$error
        'script_map' => !$error ? $this->getRouteMap($this->config->get('mileage_store'), $address, intval($is_city)) : '',
    );
}

В переменной script_map как раз будет содержаться скрипт Яндекс карт.
В файле catalog/view/theme/название_моей_темы/template/checkout/simplecheclout_shipping.tpl внутри 
<div class="radio"> после </label> добавил вывод скрипта:

 

<?php if(isset($shipping_method['script_map'])) echo $shipping_method['script_map']; ?>

Ну и поменял чуть селекторы в самом скрипте, поскольку там видимо обращение шло к селекторам, которых уже не существует в новой версии Simple.
Осталось только сделать зависимость полей. Сейчас придумал пока такую вещь - в блоке Покупатель сделал радиобаттон - два вида доставки, в зависимости от него показываются/скрываются поля. Осталось сделать привязку данного радиобаттона к настоящему - там где выбирается доставка.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.