xshader 0 Опубликовано 13 апреля, 2010 Жалоба Share Опубликовано 13 апреля, 2010 Никто случайно не реализовывал проверку конкретного(текущего, находясь на странице описания товара) товара на его наличие(т.е. добавлен ли он уже) в корзине? Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 13 апреля, 2010 Жалоба Share Опубликовано 13 апреля, 2010 в includes/shopping_cart.php есть метод function in_cart($products_id) { if (isset ($this->contents[$products_id])) { return true; } else { return false; } }[/code] можно сделать примерно так: в файл includes/modules/product_info.php добавить [code]if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1);} else { $info->assign('IN_CART', 0);} потом в шаблоне templates/vamshop/module/product_info/product_info_v1.html использовать эту метку например {if $IN_CART}<strong>Товар уже находится в корзине в количестве {$PRODUCTS_QUANTITY} </strong>{/if}[/code] Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 13 апреля, 2010 Жалоба Share Опубликовано 13 апреля, 2010 Я у себя делал. Если не получится, то подскажу. Просто сейчас времени нет. Ссылка на сообщение Поделиться на другие сайты
xshader 0 Опубликовано 14 апреля, 2010 Автор Жалоба Share Опубликовано 14 апреля, 2010 всем спасибо, работает подключил еще jscript_ajax_cart.js, чтобы запись обновлялась без перезагрузки Ссылка на сообщение Поделиться на другие сайты
ringo 0 Опубликовано 12 марта, 2012 Жалоба Share Опубликовано 12 марта, 2012 Я у себя делал. Если не получится, то подскажу. Просто сейчас времени нет. Не получается =( куда в includes/modules/product_info.php вставлять if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1);} else { $info->assign('IN_CART', 0);} ??? Помоги пожалуйста, очень надо... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 марта, 2012 Жалоба Share Опубликовано 12 марта, 2012 Например туда где метка PRODUCTS_NAME определяется, в этот блок кода. Ссылка на сообщение Поделиться на другие сайты
ringo 0 Опубликовано 13 марта, 2012 Жалоба Share Опубликовано 13 марта, 2012 Например туда где метка PRODUCTS_NAME определяется, в этот блок кода. Что-то не получается. У меня такой код: Файл product_info.php ... /*Проверка на наличие товара в корзине*/ if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1); } else { $info->assign('IN_CART', 0); } /*Конец проверки*/ $info->assign('PRODUCTS_NAME', vam_parse_input_field_data($product->data['products_name'], array('"' => '"'))); ... [/CODE] Если в файле product_info_v1.html сделать такое условие: [CODE] {if $IN_CART} <strong>Товар уже находится в корзине в количестве {$PRODUCTS_QUANTITY} </strong> {else} Что-то другое {/if} то выводит "Что-то другое". Получается, что условие if срабатывает, но результат false Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 марта, 2012 Жалоба Share Опубликовано 13 марта, 2012 Проверяйте как работает условие, что выводит $_SESSION['cart']->in_cart($product->data['products_id']) Ссылка на сообщение Поделиться на другие сайты
ringo 0 Опубликовано 14 марта, 2012 Жалоба Share Опубликовано 14 марта, 2012 Проверяйте как работает условие, что выводит $_SESSION['cart']->in_cart($product->data['products_id']) Если я правильно проверяю $info->assign('TEST_CART', $_SESSION['cart']->in_cart($product->data['products_id'])); [/CODE], а в шаблоне вызываю {$TEST_CART} то ничего не выводит. Или я что-то не так делаю? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 марта, 2012 Жалоба Share Опубликовано 14 марта, 2012 Смотрите метод in_cart в /includes/classes/shopping_cart.php как он работает и что отдаёт на вывод. Выше уже писали, что код рабочий. Наверное просто не так что-то делаете. Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 9 апреля, 2012 Жалоба Share Опубликовано 9 апреля, 2012 Походу, если у товара есть атрибуты, то не работает эта function in_cart($products_id) в includes/shopping_cart.php Проверьте пожалуйста. Ссылка на сообщение Поделиться на другие сайты
ringo 0 Опубликовано 7 мая, 2012 Жалоба Share Опубликовано 7 мая, 2012 ' timestamp='1334007969' post='84301'] Походу, если у товара есть атрибуты, то не работает эта function in_cart($products_id) в includes/shopping_cart.php Проверьте пожалуйста. Ну да, все правильно, если есть атрибуты то не работает, а если атрибутов нет, то работает, но не считает количество. Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 23 марта, 2014 Жалоба Share Опубликовано 23 марта, 2014 Вот припёрло вернуться к этой теме. Версия 1.72. Не работает метод in_cart в /includes/classes/shopping_cart.php если у товара есть атрибуты. Т.е. не выяснить, что товар уже есть в корзине. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2014 Жалоба Share Опубликовано 24 марта, 2014 Так ничего в корзине не менялось, всё осталось как есть. Я так подозреваю, что in_cart не предназначе для атрибутов, там вроде просто id товара проверяется, а при атрибутах всякие скобки добавляются ещё. Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 24 марта, 2014 Жалоба Share Опубликовано 24 марта, 2014 А как тогда быть? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2014 Жалоба Share Опубликовано 24 марта, 2014 Может попробовать что-то типа: if ($_SESSION['cart']->in_cart(ceil($product->data['products_id']))) { т.е., обычно товар с атрибутов, насколько я помню будет иметь id что-то вроде, к примеру, 10{1} т.е. 10 - id товара, 1 - id атрибута. Вот, наверное, нужно просто лишнее обрезать в условии, оставив id товара только, тогда и условие будет работать, по идее. или может: if ($_SESSION['cart']->in_cart((int)$product->data['products_id'])) { Либо через preq_replace оставить только число. Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 24 марта, 2014 Жалоба Share Опубликовано 24 марта, 2014 Оставить число не получается, т.к. функция in_cart ищет в корзине именно строку вида '10{1}1' - где первое код товара, второе код атрибута, третье значение атрибута. Для одного конкретного атрибута рабочий вариант такой: $_SESSION['cart']->in_cart($product->data['products_id'].'{1}1') Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 марта, 2014 Жалоба Share Опубликовано 25 марта, 2014 Я даже и не знаю тогда, не делал никогда такого, что-то нужно переписывать в in_cart функции. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения