Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

amfsota

Newbie
  
  • Posts

    47
  • Joined

  • Last visited

Everything posted by amfsota

  1. Возвращаюсь к вопросу. Так и не нашёл решения. Или я тупой или одно из двух. Где смотреть? Можете хоть файл подсказать?
  2. Лично мне нужно передать card_id в контроллер product
  3. в передаче параметров при включенном ЧПУ как это реализовать?
  4. Получилось решить проблему? У меня тоже вопрос встал.
  5. Всем привет. Работаю на OPENCART.CMS Версия 2.1.0.1.10 В магазине включён ЧПУ. требуется передать параметры ссылкой типа: /index.php?route=product/product&product_id=4&cart_id=29 чтобы можно было их использовать в контроллере product/product ЧПУ подменяет все ссылки и удаляет все параметры, добавляя свои Помогите, пожалуйста.
  6. Вопрос снят. Возможно был какой-то дефект в файле library/finance.php короче скопировал весь код из него создал новый файл скопипастил - и всё, никаких ошибок.
  7. почему вылезает ошибка? ajax запросом шлю в контроллер данные с формы: $(document).ready(function() { $('#button-addpayment').on('click', function() { $.ajax({ url: 'index.php?route=module/finance/addPayment&token=<?php echo $token;?>', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[0]), cache: false, contentType: false, processData: false, beforeSend: function() { $('#button-addpayment').button('loading'); }, complete: function() { $('#button-addpayment').button('reset'); }, success: function(json) { hideErrors(); if (json['success']) { alert (json['success']); } else { showErrors(json['error']); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); }); летит всё в функцию: public function addPayment() { require_once (DIR_SYSTEM.'library/finance.php');// из-за этих строчек вылетает ошибка $finance = new Finance($this->registry);// из-за этих строчек вылетает ошибка $json=array(); $json['success']='УСПЕШНО!!!'; $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } когда регистрирую класс и/или создаю экземпляр класса появляется мерзкая ошибка: "Unexpectetd token in JSON at position 0" причём регистрируется всё нормально и все методы класса отрабатываются как победить этот баг кто-нибудь знает?
  8. Мдаа... Нет ответа. Неужели никто не знает? Опять разобрался сам. Зачем-то в классе cart в конструкторе происходит подчистка корзины от устаревших данных и требуемая перезапись значений. Вот кусок кода, может кому нужно будет: public function __construct($registry) { $this->config = $registry->get('config'); $this->customer = $registry->get('customer'); $this->session = $registry->get('session'); $this->db = $registry->get('db'); $this->tax = $registry->get('tax'); $this->weight = $registry->get('weight'); $this->load = $registry->get('load'); $this->registry = $registry; // Remove all the expired carts with no customer ID $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE customer_id = '0' AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)"); if ($this->customer->getId()) { // We want to change the session ID on all the old items in the customers cart $this->db->query("UPDATE " . DB_PREFIX . "cart SET session_id = '" . $this->db->escape($this->session->getId()) . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'"); // Once the customer is logged in we want to update the customer ID on all items he has $cart_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE customer_id = '0' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); foreach ($cart_query->rows as $cart) { $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id = '" . (int)$cart['cart_id'] . "'"); // The advantage of using $this->add is that it will check if the products already exist and increaser the quantity if necessary. $this->add($cart['product_id'], $cart['quantity'], json_decode($cart['option']), $cart['recurring_id']); } } } Кстати, тут ещё и время хранения товаров не авторизованных пользователей устанавливается. Тема закрыта.
  9. Ребята очень надо разобраться, помогите, пожалуйста. Написал калькуляторы со своими свойствами, из карточки товара все цены подтягиваются, в админке тоже всё ОК, но если пользователь с товаром авторизуется - проблема. Почему бы просто не переписать customer_id в таблице cart, но нет почему-то затирается запись а вместо неё рисуется новая с дефолтными свойствами.
  10. Боюсь Вам надо много чего переписывать. Вам, получается, необходимо к каждому пункту фильтра добавлять список отключаемых пунктов. Здесь и переделка админки и базы нужна.
  11. Всем привет. Возникла очередная проблемка с Opencart 2.0 Не авторизованный пользователь кладёт в корзину покупки, затем на этапе оформления заказа авторизуется. У пользователя в профиле могут быть сохранённые товары в корзине, к ним приплюсовываются те товары, которые он выбрал без авторизации. Не могу найти, где происходит сверка товаров и слияние двух корзин. Авторизация происходит в контроллере checkout/login.php (запускается ajax-ом при нажатии на кнопку button-login) Далее возвращается json['redirect']="...checkout/checkout" Однако обновление корзины происходит до загрузки скрипта checkout.php Не подскажите, где?
  12. Спасибо. Видимо когда exit вставлял не сохранил перед проверкой?
  13. Подскажите, пожалуйста, в каком контроллере/моделе идёт вызов функции mail->send после подтверждения заказа? Стоит вариант оплаты bank_transfer. Кнопка "Подтверждение заказа" запускает ajax: $('#button-confirm').on('click', function() { alert ('sdsdddddddddddddd');//отладочная точка $.ajax({ url: 'index.php?route=payment/bank_transfer/confirm', type: 'post', dataType: 'json', beforeSend: function() { $('#button-confirm').button('loading'); }, complete: function() { // alert (json['success']); $('#button-confirm').button('reset'); }, success: function(json) { //alert (json['success']); location = 'http://mymetab.ru/index.php?route=checkout/success'; }, error: function(xhr, ajaxOptions, thrownError) { //alert ($json['success']); //alert ('ERROR'); } }); }); вторая строчка с alert выводит сообщение на экран. Пока сообщение висит email не отправляется. Жмём OK. Далее должна вызываться функция confirm: public function confirm() { exit;//отладочная точка $json=array(); if ($this->session->data['payment_method']['code'] == 'bank_transfer') { $this->load->language('payment/bank_transfer'); $this->load->model('checkout/order'); $comment = $this->language->get('text_instruction') . "\n\n"; $comment .= $this->config->get('bank_transfer_bank' . $this->config->get('config_language_id')) . "\n\n"; $comment .= $this->language->get('text_payment'); //создаём счёт на оплату $this->registry->set('documents', new documents($this->registry)); $data['doc_invoice'] = $this->documents->createInvoice($this->session->data['order_id']); $json['success']='good'; //запоминаем в сессии $this->session->data['doc_invoice'] = $data['doc_invoice']; $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('bank_transfer_order_status_id'), $comment, true); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } нигде мылом не пахнет. Ставлю в первую строчку функции exit; и при нажатии на кнопку письмо всё-равно летит покупателю. Кто вклинивается между ajax запросом и функцией confirm?
  14. Где? Все ваши посты пересмотрел, нет там нигде работающего решения. Вся проблема была именно в видимости register, а вы не предложили ничего для её решения. Всё. тема закрыта. Спасибо всем участвующим в дискуссии вы очень помогли, хоть и не конкретным решением, но своими ответами натолкнули на нужную мысль.
  15. ну или так можно создать экземпляр $calculators = new Calculators($this->registry);
  16. Всё, пока писал предыдущий пост нашёл решение. Блин, это костыль какой-то получается. Короче, создаём в конструкторе экземпляр registry из объекта $registry так: $this->registry = $registry; а далее создаём свои экземпляры классов так: $this->calculators = $this->registry->get('calculators'); это работает, слава богу... может быть кто-нибудь знает как по уму сделать, не хочется пихать в код такое
  17. пока итог такой: cart.php в конструкторе $registry виден и все экземпляры классов подгружаются в функции getProducts() $registry не виден и невозможно подключить ни один класс
  18. Я не издеваюсь, это надо мной похоже движок издевается. На конструктор в cart.php не ругается совсем. Более того на конструктор в calculators.php тоже не ругается, когда создание экземпляра класса идёт из модуля (не важно модуль админки или каталога). Фигня какая-то творится.
  19. Да не видит он из cart.php registry. $calculators = new Calculators($registry); получаем ошибку: Notice: Undefined variable: registry in /var/www/u0328033/public_html/mymetab.ru/system/library/cart.php
  20. дык писал в первом ответе вам. беда какая-то класс загружен - Load не нужно, но всё-равно ошибки в cart.php. при создании экземпляра класса в строке: $calculators = new Calculators(); Warning: Missing argument 1 for Calculators::__construct(), called in /var/www/u0328033/public_html/mymetab.ru/system/library/cart.php on line 174 and defined in /var/www/u0328033/public_html/mymetab.ru/system/library/calculators.php on line 5Notice: Undefined variable: registry in /var/www/u0328033/public_html/mymetab.ru/system/library/calculators.php on line 6 опять ругается на отсутствие registry, только уже в конструкторе класса calculators вот конструктор из calculators.php public function __construct($registry) { $this->config = $registry->get('config'); $this->customer = $registry->get('customer'); $this->session = $registry->get('session'); $this->db = $registry->get('db'); $this->tax = $registry->get('tax'); $this->weight = $registry->get('weight'); }
  21. Как мне посоветовали - так и пробую. Я не понимаю, почему свойство registry в моделях работает, а из системной библиотеки - нет. Блин, задача-то вроде простая - подключить класс. А никак не получается.
  22. class Cart { private $data = array(); public function __construct($registry) { $this->config = $registry->get('config'); $this->customer = $registry->get('customer'); $this->session = $registry->get('session'); $this->db = $registry->get('db'); $this->tax = $registry->get('tax'); $this->weight = $registry->get('weight'); $this->load = $registry->get('load'); //вставил ... $this->load->library('calculators'); $calculators= new Calculators(); ... Опять ошибка: Fatal error: Call to undefined method Loader::library() in /var/www/u0328033/public_html/mymetab.ru/system/library/cart.php on line 173
  23. Не работает. Файл /library/calculators.php: <?php class Calculators { private $data = array(); public function __construct($registry) { $this->config = $registry->get('config'); $this->customer = $registry->get('customer'); $this->session = $registry->get('session'); $this->db = $registry->get('db'); $this->tax = $registry->get('tax'); $this->weight = $registry->get('weight'); } ..... Файл /library/cart.php: class Cart { private $data = array(); public function __construct($registry) { $this->config = $registry->get('config'); $this->customer = $registry->get('customer'); $this->session = $registry->get('session'); $this->db = $registry->get('db'); $this->tax = $registry->get('tax'); $this->weight = $registry->get('weight'); $this->calculators = $registry->get('calculators'); .... public function getProducts() { .... $calculators= new Calculators(); $calcprice = $calculators->refreshPrice($cart); .... Ошибка: Warning: Missing argument 1 for Calculators::__construct(), called in /var/www/u0328033/public_html/mymetab.ru/system/library/cart.php on line 177 and defined in /var/www/u0328033/public_html/mymetab.ru/system/library/calculators.php on line 5Notice: Undefined variable: registry in /var/www/u0328033/public_html/mymetab.ru/system/library/calculators.php on line 6 Fatal error: Call to a member function get() on a non-object in /var/www/u0328033/public_html/mymetab.ru/system/library/calculators.php on line 6
  24. теперь: Notice: Undefined property: Cart::$load in /var/www/u0328033/public_html/mymetab.ru/system/library/cart.php on line 172 load насколько я понимаю в версии Pro не работает, там автолодер:
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.