Перейти к содержанию
Форум поддержки пользователей VamShop

Удаление товара из корзины


Рекомендуемые сообщения

Никто случайно не делал удаление из корзины ссылкой? Т.е. вместо сheckbox'a напротив товара и нажатию кнопки обновить, у каждого товара своя ссылка "Удалить"

Ссылка на сообщение
Поделиться на другие сайты

в файле includes/modules/order_details_cart.php

60 строка примерно заменяешь на


$module_content[$i] = array ('REMOVE_URL' => vam_href_link('shopping_cart_remove_product.php', 'products_id='.$products[$i]['id']), 'PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => vam_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');
[/code] (добавли  "'REMOVE_URL' => vam_href_link('shopping_cart_remove_product.php', 'products_id='.$products[$i]['id'])," ) в шаблоне order_details_cart.html добавляем гдето к примеру после\вместо {$module_data.BOX_DELETE} код
[code]
<a href="{$module_data.REMOVE_URL}">Remove</a>

и кидаем в корень файл с вложения

пысы писал по быстрому и не на трезвую голову мб гдето есть еще ньюансы но вроде все норм работает)

можн потестить и добавить в фак

shopping_cart_remove_product.php

Ссылка на сообщение
Поделиться на другие сайты

незачто

решение хоть и не очень сложное но поинтереснее чем "как мне изменить цвет слова с красного на синий" =\

удачи)

Ссылка на сообщение
Поделиться на другие сайты

В продолжение этой темы . Mosquito, а скажите пожайлуста, насколько сложно сделать следующее: когда открываешь корзину у каждого товара своя ссылка "Удалить" (это уже есть) и своя ссылка "Добавить" ,чтобы не было ячейки для ввода кол-ва товара, но само кол-во отображалось и перещитывалось при щелчке на удалить или добавить?

Ссылка на сообщение
Поделиться на другие сайты

если я правильно понял то нужно что то типа кнопок +/- и кнопка удалить должна по идее удалять -N товарa а кнопка добавить +N товарa

переделать не оч сложно

Ссылка на сообщение
Поделиться на другие сайты

могу сделать за норм предложение) если хочешь сам то пробуй делать по аналогии с тем что я писал выше

Ссылка на сообщение
Поделиться на другие сайты

теоретически можно решить все... если научится искать это решение, не всегда все пишешь сходу..

сначала хотел сделать все только на пхп но тут сложнее чем с просто удалением товара вообще из-за атрибутов..

получилось сделать через js вроде работает)

удачи тебе в поисках твоего решения) всегда интересно посмотреть разные варианты решения проблемы =)

Ссылка на сообщение
Поделиться на другие сайты

кстати когда ставим кол-во товара 0 то думаю нужно убирать товар из корзины, по умолчанию оно просто оставляет старое кол-во вроде

для того что б удалялса товар с корзины нажав на кнопку обновить нужно в файле cart_actions.php в блоке update_product

заменить строку


if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ()))) {
[/code] на
[code]
if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ())) || (isset($_POST['cart_quantity'][$i]) && (intval($_POST['cart_quantity'][$i]) == 0)) ) {

думаю такое поведение правильнее

Ссылка на сообщение
Поделиться на другие сайты

суть идеи скрыть инпут показывать кол-во просто текстом

через js изменить инпут кол-ва и вызвать сабмит формы

если не сделал еще вот код

в includes/header.php должно быть


<script type="text/javascript" src="jscript/jquery/jquery.js"></script>
<script type="text/javascript">
$(function() {
        $(".inc_btn").click(function(){
        $('input[name="cart_quantity[]"][pid="'+$(this).attr("pid")+'"]').val(
            parseInt($('input[name="cart_quantity[]"][pid="'+$(this).attr("pid")+'"]').val()) + 1
            );
               
            $("#cart_quantity").submit();
        });
       
        $(".dec_btn").click(function(){
        if (parseInt($('input[name="cart_quantity[]"][pid="'+$(this).attr("pid")+'"]').val()) > 0){
        $('input[name="cart_quantity[]"][pid="'+$(this).attr("pid")+'"]').val(
            parseInt($('input[name="cart_quantity[]"][pid="'+$(this).attr("pid")+'"]').val()) - 1
            );
               
            $("#cart_quantity").submit();
            }
        });
});
</script>
[/code] в файле includes/modules/oreder_details_cart.php 60 строка меняем на
[code]
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY_TEXT' => $products[$i]['quantity'], 'PRODUCTS_QTY' => vam_draw_hidden_field('cart_quantity[]', $products[$i]['quantity'], 'pid="'.$products[$i]['id'].'"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');

$module_content[$i]['_id'] = $products[$i]['id'];
и в шаблоне /module/order_details.html вместо

<td valign="top" align="center">{$module_data.PRODUCTS_QTY}</td>
[/code] ставим
[code]
<td valign="top" align="center">{$module_data.PRODUCTS_QTY}{$module_data.PRODUCTS_QTY_TEXT}</td>
и после

    <td valign="top" align="right">{$module_data.PRODUCTS_SINGLE_PRICE}</td>
    <td valign="top" align="right">{$module_data.PRODUCTS_PRICE}&nbsp;
    </td>
[/code] добавляем
[code]
    <td width="10" align="center" valign="middle">
    <span class="inc_btn" pid="{$module_data._id}"> inc </span>
        <span class="dec_btn" pid="{$module_data._id}"> dec </span>
    </td>

Ссылка на сообщение
Поделиться на другие сайты

mosquito, Спасибо за вариант решения. Но по виду кода я понял только одно)) максимум, что я смогу нафантазировать - это или подправить готовое решение или повторить аналог... Вариант предложеный тобой - то высшая математика)) а я ни разу не програмер)) Но вообще, спасибо)

Ссылка на сообщение
Поделиться на другие сайты

это не высшая математика) вышку я невзлюбил еще с первого курса)

код уже готовый) просто вставить в нужное место нужно)

ну ладн если даж это для тебя сложно то мб кому то другому пригодится

удачи)

Ссылка на сообщение
Поделиться на другие сайты

реквестую добавить это ваму в магазин, архинужная штука.

mosquito - молодец! давно хотим чтоб удаление из корзины было кнопками

Ссылка на сообщение
Поделиться на другие сайты
  • 4 years later...

кстати когда ставим кол-во товара 0 то думаю нужно убирать товар из корзины, по умолчанию оно просто оставляет старое кол-во вроде

для того что б удалялса товар с корзины нажав на кнопку обновить нужно в файле cart_actions.php в блоке update_product

заменить строку

if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ()))) {
на

if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ())) || (isset($_POST['cart_quantity'][$i]) && (intval($_POST['cart_quantity'][$i]) == 0)) ) {
думаю такое поведение правильнее

 

 

А как сделать что бы остались кнопки + \ - и что бы кнопка "Удалить" работала, ведь во втором случае 60я строка изменяется и  не работает кнопка "Удалить"

Ссылка на сообщение
Поделиться на другие сайты

Я делал удаление товара ссылкой и кнопки плюс/минус. За долю малую могу поставить.

Ссылка на сообщение
Поделиться на другие сайты

Так кнопки + и - это обычный javascript, он никак не связан с php кодом обычно.

 

Так там по работе этих кнопок +и - указывается что в в файле includes/modules/oreder_details_cart.php

60 строка меняем на

 

$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY_TEXT' => $products[$i]['quantity'], 'PRODUCTS_QTY' => vam_draw_hidden_field('cart_quantity[]', $products[$i]['quantity'], 'pid="'.$products[$i]['id'].'"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');

$module_content[$i]['_id'] = $products[$i]['id'];

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...