ruslanstroj Опубліковано: 15 грудня 2020 Share Опубліковано: 15 грудня 2020 добрый день может кто подскажет нужно сделать кнопку удалить из корзины в рекомендуемых товара буду благодарен за попощь Надіслати Поділитися на інших сайтах More sharing options...
openprice Опубліковано: 15 грудня 2020 Share Опубліковано: 15 грудня 2020 Посмотрите как аналогичная кнопка реализована в самой корзине и вперёд Если сами не справитесь, то пишите в личку. Сделаю Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 15 грудня 2020 Автор Share Опубліковано: 15 грудня 2020 Только что, openprice сказал: Посмотрите как аналогичная кнопка реализована в самой корзине и вперёд Если сами не справитесь, то пишите в личку. Сделаю там как я вижу удаление идет ajax onclick="cart.remove('261');" но это действует только в корзине значит еще в контролере написана функция, но просто перенести ее как я понимаю проблему не решит и кнопка работать не будет где мне нужно Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 16 грудня 2020 Автор Share Опубліковано: 16 грудня 2020 никто не знает как сделать что бы сначала человек кликает на кнопку купить товарв и он отправляется в корзину, потом вместо кнопки купить будет кнопка убрать товар из корзины? Надіслати Поділитися на інших сайтах More sharing options...
Shureg Опубліковано: 16 грудня 2020 Share Опубліковано: 16 грудня 2020 (змінено) 13 минут назад, ruslanstroj сказал: никто не знает как сделать что бы сначала человек кликает на кнопку купить товарв и он отправляется в корзину, потом вместо кнопки купить будет кнопка убрать товар из корзины? То есть, функции "купить" у вас вообще не будет? Покупатель будет развлекаться, то добавляя товар в корзину, то удаляя? Оригинальный вариант маркетинга. Змінено 16 грудня 2020 користувачем Shureg Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 16 грудня 2020 Автор Share Опубліковано: 16 грудня 2020 10 минут назад, Shureg сказал: То есть, функции "купить" у вас вообще не будет? Покупатель будет развлекаться, то добавляя товар в корзину, то удаляя? Оригинальный вариант маркетинга. нет вот скрин хочу сделать просто что если человек вдруг случайно нажал и выбрал какой то напиток - что бы потом вместо кнопки со значком check у него появилась кнопка с крестиком, типа отменить добавление в корзину (что бы не удалять товар в корзине) Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 16 грудня 2020 Автор Share Опубліковано: 16 грудня 2020 на остальных товарах этого не будет, только в этом блоке Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 в корзине, товар может быть с разными опциями, как быть в таком случае? Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 4 часа назад, fanatic сказал: в корзине, товар может быть с разными опциями, как быть в таком случае? при клике товар полностью с опциями убирается из корзины точно также как и в корзине функция Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 10 минут назад, elken_collection сказал: точно также как и в корзине функция в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. и как понять в модуле с какими опциями удалять товар? или все удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 28 минут назад, fanatic сказал: как понять в модуле с какими опциями удалять товар? или все удалять? Вы думаете у напитка будет много опций в данном конкретном случае?) В 16.12.2020 в 09:45, ruslanstroj сказал: никто не знает как сделать что бы сначала человек кликает на кнопку купить товарв и он отправляется в корзину, потом вместо кнопки купить будет кнопка убрать товар из корзины? Знаю) У меня такое реализовано. Там разница только в том что с корзины удаляет не по product_id, а по cart_id. Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 1 час назад, iglin сказал: Вы думаете у напитка будет много опций в данном конкретном случае?) да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? 1 час назад, iglin сказал: Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. серьезно? а это? 1 час назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. нашли десять позиций с id товара = 5. какую удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 2 минуты назад, fanatic сказал: нашли десять позиций с id товара = 5. какую удалять? Ну я ведь написал про конкретный случай. А так да, хоть все удалить можно если нужно. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
elken_collection Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 4 часа назад, fanatic сказал: в корзине, товар может быть с разными опциями, как быть в таком случае? при клике товар полностью с опциями убирается из корзины точно также как и в корзине функция Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 10 минут назад, elken_collection сказал: точно также как и в корзине функция в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. и как понять в модуле с какими опциями удалять товар? или все удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 28 минут назад, fanatic сказал: как понять в модуле с какими опциями удалять товар? или все удалять? Вы думаете у напитка будет много опций в данном конкретном случае?) В 16.12.2020 в 09:45, ruslanstroj сказал: никто не знает как сделать что бы сначала человек кликает на кнопку купить товарв и он отправляется в корзину, потом вместо кнопки купить будет кнопка убрать товар из корзины? Знаю) У меня такое реализовано. Там разница только в том что с корзины удаляет не по product_id, а по cart_id. Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 1 час назад, iglin сказал: Вы думаете у напитка будет много опций в данном конкретном случае?) да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? 1 час назад, iglin сказал: Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. серьезно? а это? 1 час назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. нашли десять позиций с id товара = 5. какую удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 2 минуты назад, fanatic сказал: нашли десять позиций с id товара = 5. какую удалять? Ну я ведь написал про конкретный случай. А так да, хоть все удалить можно если нужно. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 28 минут назад, fanatic сказал: как понять в модуле с какими опциями удалять товар? или все удалять? Вы думаете у напитка будет много опций в данном конкретном случае?) В 16.12.2020 в 09:45, ruslanstroj сказал: никто не знает как сделать что бы сначала человек кликает на кнопку купить товарв и он отправляется в корзину, потом вместо кнопки купить будет кнопка убрать товар из корзины? Знаю) У меня такое реализовано. Там разница только в том что с корзины удаляет не по product_id, а по cart_id. Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 1 час назад, iglin сказал: Вы думаете у напитка будет много опций в данном конкретном случае?) да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? 1 час назад, iglin сказал: Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. серьезно? а это? 1 час назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. нашли десять позиций с id товара = 5. какую удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 2 минуты назад, fanatic сказал: нашли десять позиций с id товара = 5. какую удалять? Ну я ведь написал про конкретный случай. А так да, хоть все удалить можно если нужно. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
fanatic Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 1 час назад, iglin сказал: Вы думаете у напитка будет много опций в данном конкретном случае?) да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? 1 час назад, iglin сказал: Получаем весь список товаров которые в корзине, ищем товар с тем id который нужно удалить, берём его cart_id и удаляем. серьезно? а это? 1 час назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. нашли десять позиций с id товара = 5. какую удалять? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 2 минуты назад, fanatic сказал: нашли десять позиций с id товара = 5. какую удалять? Ну я ведь написал про конкретный случай. А так да, хоть все удалить можно если нужно. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
iglin Опубліковано: 17 грудня 2020 Share Опубліковано: 17 грудня 2020 2 минуты назад, fanatic сказал: нашли десять позиций с id товара = 5. какую удалять? Ну я ведь написал про конкретный случай. А так да, хоть все удалить можно если нужно. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 14 часов назад, fanatic сказал: да мне по барабану сколько будет опций у товара. как идентифицировать товар, что бы удалить? серьезно? а это? нашли десять позиций с id товара = 5. какую удалять? в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается вот так же нужно и в карточке товара в модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 эта функция должна быть только в модуле рекомендуемые, там не будет опций там напитки без опций Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 2 часа назад, elken_collection сказал: в корзине же это как то реализовано? при клике на кнопку удалить товар с корзины убирается 18 часов назад, fanatic сказал: в корзине, может быть несколько позиций одного товара, но с разными опциями. и удаляется одна конкретная позиция, остальные остаются. Надіслати Поділитися на інших сайтах More sharing options... elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
elken_collection Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 ну можно же написать функцию которая при клике будет удалять из корзины все вариации товара? Надіслати Поділитися на інших сайтах More sharing options...
ruslanstroj Опубліковано: 18 грудня 2020 Автор Share Опубліковано: 18 грудня 2020 ну да, по сути задача сделать что бы onclick="cart.remove('id');" работало не только в корзине но и модуле рекомендуемые Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 18 грудня 2020 Share Опубліковано: 18 грудня 2020 34 минуты назад, elken_collection сказал: будет удалять из корзины все вариации товара? можно Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 модель product создаем метод получить все cart_id товара public function getProductsCartId($product_id){ $query = $this->db->query("SELECT cart_id FROM " . DB_PREFIX . "cart WHERE product_id = '" . (int) $product_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); return $query->rows; } в контроллере, перед формированием массива с товарами $query_cart_id = $this->model_catalog_product->getProductsCartId($result['product_id']); $in_cart = false; if($query_cart_id){ $in_cart = true; } в массив добавляем флаг(есть ли товар в корзине) $data['products'][] = array( 'in_cart' => $in_cart, ................. в шаблоне, если флаг true, выводим кнопку "удалить из корзины" <?php if($product['in_cart']){?> <button data-productid="<?php echo $product['product_id']; ?>" class="btn-remove-in-cart btn btn-default">Удалить из корины</button> <?p и js удаления $(function(){ $('.btn-remove-in-cart').click(function(){ let product_id = $(this).attr('data-productid'); $.ajax({ url: 'index.php?route=checkout/cart/removeAllProductsForCartId', type:'post', dataType:'json', data:{'product_id': product_id}, success: function(res){ // тут, обновляем корзину // удаляем кнопку } }) }) }) контроллер cart создаем метод удаления public function removeAllProductsForCartId(){ if (isset($this->request->post['product_id'])) { $this->load->model('catalog/product'); $product_id = (int) $this->request->post['product_id']; $product_cart_id = $this->model_catalog_product->getProductsCartId($product_id); if($product_cart_id){ $carts_id = array(); foreach($product_cart_id as $cart_id){ $carts_id[] = $cart_id['cart_id']; } $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE cart_id IN(" . implode(',', $carts_id) . ") AND api_id = '" . (isset($this->session->data['api_id']) ? (int) $this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int) $this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'"); } } } 1 Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options... fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 спасибо за вариант решения мне примерно так и сделали, но там есть проблема с сессиями вот человек пытается ее решить, в вашем варианте она тоже будет Надіслати Поділитися на інших сайтах More sharing options...
fanatic Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 10 минут назад, ruslanstroj сказал: но там есть проблема с сессиями а конкретней? Надіслати Поділитися на інших сайтах More sharing options... ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница Кнопка удалить из корзины в рекомендуемых товара
ruslanstroj Опубліковано: 20 грудня 2020 Автор Share Опубліковано: 20 грудня 2020 10 минут назад, fanatic сказал: а конкретней? дал ссылку в лс Надіслати Поділитися на інших сайтах More sharing options...
iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 15 минут назад, ruslanstroj сказал: вот человек пытается ее решить, в вашем варианте она тоже будет Будет. И ещё будет проблема с тем что корзина не обновится. В этом ПРИМЕРЕ в removeAllProductsForCartId() ещё нужно много всего добавлять (удаление значений из сессий, пересчёт корзины, возвращение json массива для вывода в "корзину"). @fanatic ну и в контроллер встраивать SQL запрос мне кажется не самый красивый вариант, я думаю правильней там $this->cart->remove использовать. Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
iglin Опубліковано: 20 грудня 2020 Share Опубліковано: 20 грудня 2020 41 минуту назад, ruslanstroj сказал: спасибо за вариант решения Самы простой наверное вариант это в catalog/controller/checkout/cart.php полностью скопировать public function remove() в removeAllProductsForCartId() и заменить строчки $this->cart->remove($this->request->post['key']); unset($this->session->data['vouchers'][$this->request->post['key']]); на $products = $this->cart->getProducts(); foreach ($products as $product) { if ($product['product_id'] == $this->request->post['key']) { $this->cart->remove($product['cart_id']); unset($this->session->data['vouchers'][$product['cart_id']]); } } И с сессиями проблемы не будет и в корзину будет что нарисовать. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2
Recommended Posts