[Решено] Очистка корзины одним кликом

Тема в разделе "OpenCart", создана пользователем Pant, 18 апр 2013.

Статус темы:
Закрыта.
  1. Pant

    Pant

    Регистрация:
    6 фев 2013
    Сообщения:
    121
    Симпатии:
    11
    необходимо ввести в меню корзины кнопку для полной её очистки. На пример клиент набил множество товара в корзину, и через некоторое время передумал и хочет набить её новым товаром, сейчас ему приходится удалять каждый товар вручную, а у него этого товара может быть больше 100 единиц. Вот и появилась необходимость для введения кнопки очистить корзину.
     
  2. kama812

    kama812

    Регистрация:
    30 мар 2013
    Сообщения:
    311
    Симпатии:
    194
    module/cart.tpl
    добавить кнопку,через языки название проводить не буду, так что перекодировать файл в utf-8 без bom
    <a href="#" onclick="$('#cart').load('index.php?route=module/cart&remove_all' + ' #cart > *'); return false;">Отчистить корзину</a>


    catalog/controller/module/cart.php после $this->language->load('module/cart');добавить
    if (isset($this->request->get['remove_all'])) {
    $this->cart->clear();
    }вроде всё, баги не тестил, по идеи не должно быть.
    делал на примере удаления товара из коризны, т.ч кто нить может сказать что это ' #cart > *' и зачем оно в load ?
     
    Pant нравится это.
  3. Pant

    Pant

    Регистрация:
    6 фев 2013
    Сообщения:
    121
    Симпатии:
    11
    Всё отлично работает, но есть ещё вопрос, эта модификация добавляет кнопку (а точнее ссылку) "Очистить корзину" только в выпадающем меню, можно сделать что бы еще эта кнопка появилась в меню "ПРОСМОТРА КОРЗИНЫ"
    На скриншотах показал пример.
    [​IMG][​IMG]
     
  4. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    По идеи для "сделать что бы еще эта кнопка появилась в меню "ПРОСМОТРА КОРЗИНЫ"
    checkout/cart.tpl
    добавить кнопку,через языки название проводить не буду, так что перекодировать файл в utf-8 без bom
    <a href="#" onclick="$('#cart').load('index.php?route=checkout/cart&remove_all' + ' #cart > *'); return false;">Отчистить корзину</a>


    catalog/controller/checkout/cart.php после $this->language->load('checkout/cart');добавить
    if (isset($this->request->get['remove_all'])) {
    $this->cart->clear();
    }
     
  5. kama812

    kama812

    Регистрация:
    30 мар 2013
    Сообщения:
    311
    Симпатии:
    194
    не пробовал, но кажется хватит только той же самой кнопки в checkout/cart.tpl
    <a href="#" onclick="$('#cart').load('index.php?route=module/cart&remove_all' + ' #cart > *'); return false;">Отчистить корзину</a>не прокатит, нужно редиректиться куда нить:
    <a href="#" onclick="$('#cart').load('index.php?route=module/cart&remove_all' + ' #cart > *');
    window.location.assign('/');">Отчистить корзину</a>или обновить эту же location.reload(true)
     
  6. Pant

    Pant

    Регистрация:
    6 фев 2013
    Сообщения:
    121
    Симпатии:
    11
    Вот совсем запуталась, расскажите пожалуйста по пунктам, как добавить в просмотре корзине кнопку "очистить корзину"?
     
  7. ulikiev

    ulikiev

    Регистрация:
    3 фев 2013
    Сообщения:
    102
    Симпатии:
    29
    при нажатии на Очистить корзину появляется ли предупреждение об удалении товара?, вдруг нечаянно нажмут
     
  8. Pant

    Pant

    Регистрация:
    6 фев 2013
    Сообщения:
    121
    Симпатии:
    11
    Нет не появляется. А как это сделать?
     
  9. apple-boom

    apple-boom

    Регистрация:
    21 ноя 2012
    Сообщения:
    152
    Симпатии:
    297
    Попробуйте так:
    В файле catalog/controller/checkout/cart.php
    после строки
    Код:
    $this->data['button_checkout'] = $this->language->get('button_checkout'); 
    добавьте
    Код:
    $this->data['button_clear'] = $this->language->get('button_clear'); 
    после строки
    Код:
    $this->language->load('checkout/cart'); 
    добавьте
    Код:
    if (isset($this->request->get['remove_all'])) {
    $this->cart->clear();
    }
    
    В catalog/language/russian/checkout/cart.php добавьте
    Код:
    $_['button_clear'] = 'Очистить корзину';
    В catalog/view/theme/ваша_тема/template/checkout/cart.tpl после
    Код:
      <div class="buttons">
    	<div class="right"><a href="<?php echo $checkout; ?>" class="button"><?php echo $button_checkout; ?></a></div>
    
    добавьте
    Код:
    <div class="right"><a class="button" onclick="$('#cart').load('index.php?route=checkout/cart&remove_all'); window.location.assign('index.php?route=checkout/cart&remove_all');"><?php echo $button_clear; ?></a></div>
    
    Должно получиться так:
    [​IMG]
     
    Pant нравится это.
Статус темы:
Закрыта.