n1c Опубликовано 6 мая, 2019 Жалоба Поделиться Опубликовано 6 мая, 2019 Добрый вечер форумчане.Стала потребность сделать отправку корзины (с товаром) любому человеку, а этот человек уже оформляет заказ, а также может удалять товары из корзины.Как такое сделать? либо цена вопроса? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 мая, 2019 Жалоба Поделиться Опубликовано 6 мая, 2019 Цена вопроса 30$ скайп simplacms, телеграмм t.me/noxter. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение phukortsin Опубликовано 7 мая, 2019 Решение Жалоба Поделиться Опубликовано 7 мая, 2019 1. В view/CartView после public function __construct() { parent::__construct();вставить if($cartcontent = $this->request->get('cartcontent')) { $this->cart->empty_cart(); $vs=explode(',', $cartcontent); for($i=0;$i<count($vs); $i+=2) $this->cart->add_item($vs[$i], $vs[$i+1]); header('location: '.$this->config->root_url.'/cart/'); } 2. После этого ссылка вида http://site.ru/cart/?cartcontent=9,3,8,2,22,18 очистит текущую корзину и сформирует новую в составе:вариант 9 в кол-ве 3 штвариант 8 в кол-ве 2 штвариант 22 в кол-ве 18 шт Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 7 мая, 2019 Автор Жалоба Поделиться Опубликовано 7 мая, 2019 1. В view/CartView после public function __construct() { parent::__construct(); вставить if($cartcontent = $this->request->get('cartcontent')) { $this->cart->empty_cart(); $vs=explode(',', $cartcontent); for($i=0;$i<count($vs); $i+=2) $this->cart->add_item($vs[$i], $vs[$i+1]); header('location: '.$this->config->root_url.'/cart/'); } 2. После этого ссылка вида http://site.ru/cart/?cartcontent=9,3,8,2,22,18 очистит текущую корзину и сформирует новую в составе:вариант 9 в кол-ве 3 штвариант 8 в кол-ве 2 штвариант 22 в кол-ве 18 шт не работает ваш метод Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 мая, 2019 Жалоба Поделиться Опубликовано 7 мая, 2019 У меня на обычной Simpla очень даже работает... Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 7 мая, 2019 Автор Жалоба Поделиться Опубликовано 7 мая, 2019 У меня на обычной Simpla очень даже работает...ставил тоже на базовую, добавил товар в корзину, ссылка не поменялась....осталась также site.com/cart Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 7 мая, 2019 Жалоба Поделиться Опубликовано 7 мая, 2019 Она и не будет менятьсяЭто не готовое решение, это скорее намекДанное решение реализует ТОЛЬКО отображение корзины ИЗ ссылки, а не добавление товаров в урл Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 мая, 2019 Жалоба Поделиться Опубликовано 7 мая, 2019 (изменено) Если надо, чтобы ссылка формировалась автоматически, то 3. В view/CartView после // Удаление товара из корзины if($delete_variant_id = intval($this->request->get('delete_variant'))) { $this->cart->delete_item($delete_variant_id); if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) header('location: '.$this->config->root_url.'/cart/'); } вставить if(!empty($_SESSION['shopping_cart'])) { $par=''; foreach($_SESSION['shopping_cart'] as $variant_id => $amount){ if($par) $par.=','; $par.=$variant_id.','.$amount; } $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontent='.$par); }4. В шаблоне (например, корзины) вставить в подходящем месте {$cartref}. Тогда будет видна ссылка на текущую корзину. Изменено 7 мая, 2019 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 7 мая, 2019 Автор Жалоба Поделиться Опубликовано 7 мая, 2019 Если надо, чтобы ссылка формировалась автоматически, то 3. В view/CartView после // Удаление товара из корзины if($delete_variant_id = intval($this->request->get('delete_variant'))) { $this->cart->delete_item($delete_variant_id); if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) header('location: '.$this->config->root_url.'/cart/'); } вставить if(!empty($_SESSION['shopping_cart'])) { $par=''; foreach($_SESSION['shopping_cart'] as $variant_id => $amount){ if($par) $par.=','; $par.=$variant_id.','.$amount; } $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontents='.$par); } 4. В шаблоне (например, корзины) вставить в подходящем месте {$cartref}. Тогда будет видна ссылка на текущую корзину. огонь. ссылка работает.а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку?то есть другой человек открывает эту ссылку у себя на ПК и видит уже эти добавленные товары и продолжает оформлять заказ? Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 мая, 2019 Жалоба Поделиться Опубликовано 7 мая, 2019 а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку? Никак. Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.Тот, кто откроет эту ссылку, увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится... Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 7 мая, 2019 Автор Жалоба Поделиться Опубликовано 7 мая, 2019 Никак. Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.Тот, кто откроет эту ссылку, увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится... открываю эту ссылку в другом браузере, пишется - Ваша корзина пуста Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 7 мая, 2019 Жалоба Поделиться Опубликовано 7 мая, 2019 Ошибочка была в п.3 - исправил. Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 7 мая, 2019 Автор Жалоба Поделиться Опубликовано 7 мая, 2019 Ошибочка была в п.3 - исправил. Cпасибо ЧЕЛОВЕЧИЩЕ!!!!! Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 8 мая, 2019 Автор Жалоба Поделиться Опубликовано 8 мая, 2019 Ошибочка была в п.3 - исправил. А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго? Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 8 мая, 2019 Жалоба Поделиться Опубликовано 8 мая, 2019 А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго? передавать в ссылке логин первого пользователя. Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 8 мая, 2019 Автор Жалоба Поделиться Опубликовано 8 мая, 2019 передавать в ссылке логин первого пользователя. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 8 мая, 2019 Жалоба Поделиться Опубликовано 8 мая, 2019 передавать в ссылке логин первого пользователя.Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. Цитата Ссылка на сообщение Поделиться на другие сайты
n1c Опубликовано 9 мая, 2019 Автор Жалоба Поделиться Опубликовано 9 мая, 2019 Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. нужно передать id пользователя? Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 9 мая, 2019 Жалоба Поделиться Опубликовано 9 мая, 2019 Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. и пароль можно он же в md5 ) Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 9 мая, 2019 Жалоба Поделиться Опубликовано 9 мая, 2019 По подсказке shooroop, чуть изменить пп.1,3 и добавить п. 51. В view/CartView после public function __construct() { parent::__construct();вставить if($cartcontent = $this->request->get('cartcontent')) { $_SESSION['uid']=$this->request->get('uid', 'integer'); $this->cart->empty_cart(); $vs=explode(',', $cartcontent); for($i=0;$i<count($vs); $i+=2) $this->cart->add_item($vs[$i], $vs[$i+1]); header('location: '.$this->config->root_url.'/cart/'); }3. В view/CartView после // Удаление товара из корзины if($delete_variant_id = intval($this->request->get('delete_variant'))) { $this->cart->delete_item($delete_variant_id); if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) header('location: '.$this->config->root_url.'/cart/'); }вставить if(!empty($_SESSION['shopping_cart'])) { $par=''; foreach($_SESSION['shopping_cart'] as $variant_id => $amount){ if($par) $par.=','; $par.=$variant_id.','.$amount; } $this->design->assign('cartref', $this->config->root_url.'/cart?cartcontent='.$par.($this->user ? '&uid='.$this->user->id : '')); }5. В view/CartView вставить if($_SESSION['uid']){ $order->user_id = $_SESSION['uid']; } else перед if(!empty($this->user->id)) $order->user_id = $this->user->id; Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 9 мая, 2019 Жалоба Поделиться Опубликовано 9 мая, 2019 и пароль можно он же в md5 )Другое дело Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 9 мая, 2019 Жалоба Поделиться Опубликовано 9 мая, 2019 и пароль можно он же в md5 ) Другое дело Совершенно бессмысленно отправлять пароль в md5 - с него для скрипта на стороне получателя никакого толку. Идентифицировать пользователя по нему нельзя - потому как разные пользователи могут иметь одинаковые пароли... Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 23 ноября, 2020 Жалоба Поделиться Опубликовано 23 ноября, 2020 (изменено) Подскажите пожалуйста, почему выводит в шаблоне вместо количества = "Array"? Получается: site.com/cart?cartlike=12686,Array if(!empty($this->shopping_cart)) { $par=''; foreach($this->shopping_cart as $variant_id => $amount){ if($par) $par.=','; $par.=$variant_id.','.$amount; } $this->design->assign('cartref', $this->config->root_url.'/cart?cartlike='.$par.($this->user ? '&uid='.$this->user->id : '')); } Изменено 23 ноября, 2020 пользователем get31 Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 24 ноября, 2020 Жалоба Поделиться Опубликовано 24 ноября, 2020 Вероятно, потому, что переменная ($amount) не скалярная, а является массивом... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.