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

urdenko

Новачок
  
  • Публікації

    2
  • З нами

  • Відвідування

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

urdenko's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Репутація

  1. Странное поведение движка, при входе в настройки модуля зачем отключает все методы доставки и настройки доставки. Например для бесплатной доставки проскакивают sql запросы типа: DELETE FROM oc_extension WHERE `type` = 'shipping' AND `code` = 'free'; DELETE FROM oc_setting WHERE `code` = 'free' Явная деинсталяция стандартным кодом движка. Кто нибудь сталкивался? Пока ждал ответа, нашел источник деинсталяции, это файл admin/controller/feed/yamodule.php кусок кода foreach ($extensions as $key => $value) { if (!file_exists(DIR_APPLICATION . 'controller/shipping/' . $value . '.php')) { $this->model_extension_extension->uninstall('shipping', $value); unset($extensions[$key]); } } не совсем понятно зачем автор "причиняет добро" в виде отключения несуществующих модулей, но у меня именно от этого вся доставка отключается
  2. Что бы корректно работала предварительная оценка стоимости заказа по введенному индексу я написал себе костыль. Работает только для РФ, может кому пригодится. В файле /catalog/controller/extension/total/shipping.php найти сроку $this->session->data['shipping_address'] = array( и добавить перед ней // === узнать город по индексу ==== $this->load->model('extension/shipping/dpdregions'); $convert_region = $this->model_extension_shipping_dpdregions->getRegions($this->request->post['zone_id']); $find_city = array('',0,999999); $file_city = @fopen(DIR_SYSTEM."storage/download/dpd_cities.txt", "r"); if ($file_city !== false && $convert_region !== false) { $post_code = $this->request->post['postcode']; $zone_code_id = $this->request->post['zone_id']; while (!feof($file_city)) { $line = explode('|',fgets($file_city)); // отбросить чужие if ($line[3] != 'г') continue; if ($line[1] != $convert_region) continue; if ($line[0] != $iso_code_2) continue; if ($line[5] > $post_code) continue; if ($line[6] < $post_code) continue; // выбрать ближайший город if ($find_city[1] <= $line[5] && $find_city[2] >= $line[6]) $find_city = array($line[4],$line[5],$line[6]); } fclose($file_city); } а чуть ниже после нее найти строку 'city' => '', и заменить на 'city' => $find_city[0], Далее в папке /catalog/model/extension/shipping/ добавить файл dpdregions.php с содержимым <?php class ModelExtensionShippingDpdRegions extends Model { public function getRegions ($id){ $query = $this->db->query("SELECT `dpd_code` FROM `" . DB_PREFIX . "dpd_regions` where `id_oc` = ".(int)$id." limit 1"); if ($query->row) return $query->row['dpd_code']; else return false; } } ?> Не забудьте файлу /catalog/model/extension/shipping/dpdregions.php дать соответствующие chown и chmod (например, www-data:www-data и 550). В принципе, автору модуля нет проблем дописать это для всех остальных стран и добавить это в файл dpd_modification.ocmod.xml в своих будущих сборках, чтоб народ не лазил в коде, а то мне лениво и денег не плотють

×
×
  • Створити...

Important Information

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