n1c Posted May 6, 2019 Report Share Posted May 6, 2019 Добрый вечер форумчане.Стала потребность сделать отправку корзины (с товаром) любому человеку, а этот человек уже оформляет заказ, а также может удалять товары из корзины.Как такое сделать? либо цена вопроса? Quote Link to post Share on other sites
Noxter Posted May 6, 2019 Report Share Posted May 6, 2019 Цена вопроса 30$ скайп simplacms, телеграмм t.me/noxter. Quote Link to post Share on other sites
Solution phukortsin Posted May 7, 2019 Solution Report Share Posted May 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 шт Quote Link to post Share on other sites
n1c Posted May 7, 2019 Author Report Share Posted May 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 шт не работает ваш метод Quote Link to post Share on other sites
phukortsin Posted May 7, 2019 Report Share Posted May 7, 2019 У меня на обычной Simpla очень даже работает... Quote Link to post Share on other sites
n1c Posted May 7, 2019 Author Report Share Posted May 7, 2019 У меня на обычной Simpla очень даже работает...ставил тоже на базовую, добавил товар в корзину, ссылка не поменялась....осталась также site.com/cart Quote Link to post Share on other sites
Kosjak76 Posted May 7, 2019 Report Share Posted May 7, 2019 Она и не будет менятьсяЭто не готовое решение, это скорее намекДанное решение реализует ТОЛЬКО отображение корзины ИЗ ссылки, а не добавление товаров в урл Quote Link to post Share on other sites
phukortsin Posted May 7, 2019 Report Share Posted May 7, 2019 (edited) Если надо, чтобы ссылка формировалась автоматически, то 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}. Тогда будет видна ссылка на текущую корзину. Edited May 7, 2019 by phukortsin Quote Link to post Share on other sites
n1c Posted May 7, 2019 Author Report Share Posted May 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}. Тогда будет видна ссылка на текущую корзину. огонь. ссылка работает.а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку?то есть другой человек открывает эту ссылку у себя на ПК и видит уже эти добавленные товары и продолжает оформлять заказ? Quote Link to post Share on other sites
phukortsin Posted May 7, 2019 Report Share Posted May 7, 2019 а как сохранить добавленные товары в корзине чтобы передать ссылку другому человеку? Никак. Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.Тот, кто откроет эту ссылку, увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится... Quote Link to post Share on other sites
n1c Posted May 7, 2019 Author Report Share Posted May 7, 2019 Никак. Если надо передать ссылку, то передавайте как есть. Ничего и сохранять не надо.Тот, кто откроет эту ссылку, увидит сразу эти товары в корзине и сможет продолжить как ему заблагорассудится... открываю эту ссылку в другом браузере, пишется - Ваша корзина пуста Quote Link to post Share on other sites
phukortsin Posted May 7, 2019 Report Share Posted May 7, 2019 Ошибочка была в п.3 - исправил. Quote Link to post Share on other sites
n1c Posted May 7, 2019 Author Report Share Posted May 7, 2019 Ошибочка была в п.3 - исправил. Cпасибо ЧЕЛОВЕЧИЩЕ!!!!! Quote Link to post Share on other sites
n1c Posted May 8, 2019 Author Report Share Posted May 8, 2019 Ошибочка была в п.3 - исправил. А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго? Quote Link to post Share on other sites
shooroop Posted May 8, 2019 Report Share Posted May 8, 2019 А как сделать, чтобы залогиненный пользователь скинул ссылку второму человеку, второй человек оформляет заказ и нужно чтобы в админке заказ шел этому залогиненному пользователю, но с данными на отправку второго? передавать в ссылке логин первого пользователя. Quote Link to post Share on other sites
n1c Posted May 8, 2019 Author Report Share Posted May 8, 2019 передавать в ссылке логин первого пользователя. Quote Link to post Share on other sites
Noxter Posted May 8, 2019 Report Share Posted May 8, 2019 передавать в ссылке логин первого пользователя.Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. Quote Link to post Share on other sites
n1c Posted May 9, 2019 Author Report Share Posted May 9, 2019 Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. нужно передать id пользователя? Quote Link to post Share on other sites
shooroop Posted May 9, 2019 Report Share Posted May 9, 2019 Очень умно передавать в ссылке чужой логин.Ты бы ещё пароль предложил передавать. и пароль можно он же в md5 ) Quote Link to post Share on other sites
phukortsin Posted May 9, 2019 Report Share Posted May 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; Quote Link to post Share on other sites
Noxter Posted May 9, 2019 Report Share Posted May 9, 2019 и пароль можно он же в md5 )Другое дело Quote Link to post Share on other sites
phukortsin Posted May 9, 2019 Report Share Posted May 9, 2019 и пароль можно он же в md5 ) Другое дело Совершенно бессмысленно отправлять пароль в md5 - с него для скрипта на стороне получателя никакого толку. Идентифицировать пользователя по нему нельзя - потому как разные пользователи могут иметь одинаковые пароли... Quote Link to post Share on other sites
get31 Posted November 23, 2020 Report Share Posted November 23, 2020 (edited) Подскажите пожалуйста, почему выводит в шаблоне вместо количества = "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 : '')); } Edited November 23, 2020 by get31 Quote Link to post Share on other sites
phukortsin Posted November 24, 2020 Report Share Posted November 24, 2020 Вероятно, потому, что переменная ($amount) не скалярная, а является массивом... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.