n1c Posted March 10, 2019 Report Share Posted March 10, 2019 (edited) Привет друзья!Решил сделать очередной метод "две цены", то есть 1-ю цену розничную видит просто зашедший клиент, в 2-ю опт цену видит зарегистрированный. добавим в Variants.php в ф-ции get_variants и get_variant v.price_2 в БД также сделаем price_2 далее в api/Cart.php после $cart->purchases[] = $purchase; добавим: if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) { $cart->total_price += $item->variant->price_2*$item->amount; } else { $cart->total_price += $item->variant->price*$item->amount; } в Orders.php в ф-цию update_total_price делаем по аналогии в шаблоне дизайна где цены добавим {if $user} {$purchase->variant->price_2|convert} {$currency->sign|escape} {else} {$purchase->variant->price|convert} {$currency->sign|escape} {/if} Готово! Цена выводится, заказ принимается. P.S.Подскажите пожалуйста, если создать группу "ОПТ" id которой - id2Что нужно в api/Cart.php вместо if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) чтобы вывести группу ИД которой 2 ? Edited March 10, 2019 by n1c Quote Link to post Share on other sites
n1c Posted March 10, 2019 Author Report Share Posted March 10, 2019 Никто не знает, как сделать для группы с id??? Quote Link to post Share on other sites
phukortsin Posted March 11, 2019 Report Share Posted March 11, 2019 Поиск надо использовать... http://forum.simplacms.ru/topic/13387-%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5-%D1%81-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D0%BC%D0%B8/http://forum.simplacms.ru/topic/4153-разбивка-по-ценам-и-категориям-покупателям/?p=48780 Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 Поиск надо использовать... http://forum.simplacms.ru/topic/13387-%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5-%D1%81-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D0%BC%D0%B8/http://forum.simplacms.ru/topic/4153-разбивка-по-ценам-и-категориям-покупателям/?p=48780 я видел эти темы, но в них нет того что я спрашивал.как вывести в шаблоне {if $user->group_id == 2} это я знаюа мне нужно: Что нужно в api/Cart.php вместо if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))чтобы вывести группу ИД которой 2 ? Quote Link to post Share on other sites
Noxter Posted March 12, 2019 Report Share Posted March 12, 2019 $group = $this->users->get_group(intval(2)); print $group->name; Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 $group = $this->users->get_group(intval(2)); print $group->name; подскажите пожалуйста куда это вставить? Quote Link to post Share on other sites
Noxter Posted March 12, 2019 Report Share Posted March 12, 2019 подскажите пожалуйста куда это вставить?Смотря для чего Вам это нужно. Ну вот я сообщу Вам куда вставить и что дальше то? Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 Смотря для чего Вам это нужно.Ну вот я сообщу Вам куда вставить и что дальше то? форум для того чтобы делиться и помогать.я начал реализацию, но появились трудности в одной строке, я попросил помощи на форуме, вы сказали А своим кодом, но Б нужно вытягивать чтоли? Quote Link to post Share on other sites
Noxter Posted March 12, 2019 Report Share Posted March 12, 2019 форум для того чтобы делиться и помогать. я начал реализацию, но появились трудности в одной строке, я попросил помощи на форуме, вы сказали А своим кодом, но Б нужно вытягивать чтоли?Вам лучше не стоит делать что-то дальше, Вы ведь даже не понимаете что делаете. Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 Вам лучше не стоит делать что-то дальше, Вы ведь даже не понимаете что делаете.ты местный хейтер? Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 (edited) Друзья, есть кто знает что нужно прописать? if(isset($_SESSION['user_id']) && $group = $this->users->get_group(intval(2))) выводит цену для пользователей которые залогинены Edited March 12, 2019 by n1c Quote Link to post Share on other sites
Kosjak76 Posted March 12, 2019 Report Share Posted March 12, 2019 ЧТО ЗА ИДИОТИЗМ?????????? чтобы вывести группу ИД которой 2 ?Куда вывести?В каком виде?Какое отношение ГРУППА имеет к цене????Полный бред...Если напишете, ЧТО именно надо - получите ответ.А подобным говном не надо форум засорять))И api/Cart.php цену НИКУДА НЕ ВЫВОДИТВ этой функции вообще нет вывода Quote Link to post Share on other sites
Kosjak76 Posted March 12, 2019 Report Share Posted March 12, 2019 Вам дали ссылку на РАБОЧЕЕ решение, неоднократно проверенноеНо нет, надо группу выводить... Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 ЧТО ЗА ИДИОТИЗМ??????????Куда вывести?В каком виде?Какое отношение ГРУППА имеет к цене????Полный бред...Если напишете, ЧТО именно надо - получите ответ.А подобным говном не надо форум засорять)) И api/Cart.php цену НИКУДА НЕ ВЫВОДИТВ этой функции вообще нет вывода еще раз повторюсь:для того чтобы вывести в шаблоне нужно: {if $user->group_id == 2} цена партнера {else} цена розница {/if} тут вопросов нет. в api/Cart.php уже есть (с мелким изменением): foreach($items as $variant_id=>$item) { $purchase = null; if(!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; $purchase->variant = $item->variant; $purchase->amount = $item->amount; $cart->purchases[] = $purchase; if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) { $cart->total_price += $item->variant->price_2*$item->amount; } else { $cart->total_price += $item->variant->price*$item->amount; } $cart->total_products += $item->amount; } } вот я и спрашиваю на что нужно заменить if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) чтобы в шаблоне корзины total_price считал цену для пользователей которые входят во вторую группу Quote Link to post Share on other sites
phukortsin Posted March 12, 2019 Report Share Posted March 12, 2019 Может, Вам надо совсем не то, что Вы пишете, а чтобы в api/Cart.php для покупателей группы ID=2 считалось на основе цены price_2, а в прочих случаях на основе стандартной цены price ? Если так, то пробуйтеif(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2) Quote Link to post Share on other sites
n1c Posted March 12, 2019 Author Report Share Posted March 12, 2019 Может, Вам надо совсем не то, что Вы пишете, а чтобы в api/Cart.php для покупателей группы ID=2 считалось на основе цены price_2, а в прочих случаях на основе стандартной цены price ? Если так, то пробуйтеif(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2) да именно так и надо) в коде ведь это видно)попробовал ваше решение, но увы....цена выводится стандартная для всех( Quote Link to post Share on other sites
phukortsin Posted March 13, 2019 Report Share Posted March 13, 2019 да именно так и надо) в коде ведь это видно)попробовал ваше решение, но увы....цена выводится стандартная для всех( "цена выводится стандартная для всех" - очередная Ваша небрежная фраза. Гадайте, ребята, что ТС накодил и на какой странице и в каком месте у него что не так - занятие может быть долгим и увлекательным... Пока что с Вами ситуация в виде "они сами не знают, что они хочут"... Вообще переделки работы с ценами - это довольно непростая вещь, потому что в системе много разных мест, где это используется, и надо ничего не упустить. Вот есть темаhttp://forum.simplacms.ru/topic/8602-%D0%B2%D0%B2%D0%BE%D0%B4-%D1%86%D0%B5%D0%BD-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%B5%D0%BF%D0%BE%D1%81%D1%82%D0%B0/там решается сравнительно несложная задача, и то там разработчик проводил серьезные переделки раз 5, и, кажется, полностью до конца как следует не довел... И есть очень старая темаhttp://forum.simplacms.ru/topic/4153-%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D1%86%D0%B5%D0%BD%D0%B0%D0%BC-%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC/Там довольно хорошо детально расписывается решение очень близкой задачи. А Вы велосипед изобретаете... Quote Link to post Share on other sites
n1c Posted March 13, 2019 Author Report Share Posted March 13, 2019 (edited) "цена выводится стандартная для всех" - очередная Ваша небрежная фраза. Гадайте, ребята, что ТС накодил и на какой странице и в каком месте у него что не так - занятие может быть долгим и увлекательным... Пока что с Вами ситуация в виде "они сами не знают, что они хочут"... Вообще переделки работы с ценами - это довольно непростая вещь, потому что в системе много разных мест, где это используется, и надо ничего не упустить. Вот есть темаhttp://forum.simplacms.ru/topic/8602-%D0%B2%D0%B2%D0%BE%D0%B4-%D1%86%D0%B5%D0%BD-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D0%BE%D0%B2-%D0%B2-%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82%D0%B5%D0%BF%D0%BE%D1%81%D1%82%D0%B0/там решается сравнительно несложная задача, и то там разработчик проводил серьезные переделки раз 5, и, кажется, полностью до конца как следует не довел... И есть очень старая темаhttp://forum.simplacms.ru/topic/4153-%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D1%86%D0%B5%D0%BD%D0%B0%D0%BC-%D0%B8-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC/Там довольно хорошо детально расписывается решение очень близкой задачи. А Вы велосипед изобретаете... "цена выводится стандартная для всех"Имею ввиду что выводится цена как для розничного покупателя (не зависимо входит человек во вторую группу, или нет).Мое решение выглядит проще чем те что есть (не нужно много файлов править), вот и все + в других решениях не затрагивается TOTAL_PRICE, то есть просто выводит цену, не меняя ее в ИТОГОвой цене корзины и заказа Edited March 13, 2019 by n1c Quote Link to post Share on other sites
Kosjak76 Posted March 13, 2019 Report Share Posted March 13, 2019 Вот как раз ТВОЯ говноподелка и не учитывает заказа и вывода цены пользователюА существующее решение учитывает ВСЕЕсли бы ты не сношал людям моск а попробовал ПОСТАВИТЬ и ПРОВЕРИТЬ - ты бы в этом убедился... Quote Link to post Share on other sites
n1c Posted March 13, 2019 Author Report Share Posted March 13, 2019 (edited) Вот как раз ТВОЯ говноподелка и не учитывает заказа и вывода цены пользователюА существующее решение учитывает ВСЕЕсли бы ты не сношал людям моск а попробовал ПОСТАВИТЬ и ПРОВЕРИТЬ - ты бы в этом убедился...перед тем как писать, что оно не до конца работает я проверил! даже если бы я не пробовал другое дополнение, чем плохо, что люди стараются пробовать другие решения???? форум на то и форум чтобы спрашивать и пр. Edited March 13, 2019 by n1c Quote Link to post Share on other sites
phukortsin Posted March 13, 2019 Report Share Posted March 13, 2019 Имею ввиду что выводится цена как для розничного покупателя (не зависимо входит человек во вторую группу, или нет).То, что Вы имеете в виду, надо не утаивать, а сообщать ТОЧНО и ПОНЯТНО. В данном случае неизвестно, ГДЕ, НА КАКОЙ СТРАНИЦЕ, В КАКОМ МЕСТЕ неправильно выводится цена. И это, скорее всего, следствие Вашего изобретения, Вы в одном месте вывод изменили, а в другом - нет... Мое решение выглядит проще чем те что есть (не нужно много файлов править), вот и все + в других решениях не затрагивается TOTAL_PRICE, то есть просто выводит цену, не меняя ее в ИТОГОвой цене корзины и заказа От решения еще требуется, чтоб оно правильно функционировало на ВСЕХ страницах. А у Вас, как видно, пока выходит по принципу: одно строим, другое ломаем... А решение от WIZARD устроено так, что подставляет нужную цену всего лишь в одном файле, и все прекрасно работает, и не надо менять ни api/cart.php, ни в шаблонах (с чем Вы сейчас мучаетесь), ни в прочих местах... Quote Link to post Share on other sites
Kosjak76 Posted March 13, 2019 Report Share Posted March 13, 2019 перед тем как писать, что оно не до конца работает я проверил! даже если бы я не пробовал другое дополнение, чем плохо, что люди стараются пробовать другие решения???? форум на то и форум чтобы спрашивать и пр.А ты его под админом проверял? Или нет?Админу всегда показывается цена обычная))) Сразу видно, что человек код читать не умеет...Проверять надо в браузере, в котором не залогинен в админкуИ тогда все работает на ура. И проверено это все не один десяток раз))) Quote Link to post Share on other sites
Kosjak76 Posted March 13, 2019 Report Share Posted March 13, 2019 // Пользователь, если залогинен if(isset($_SESSION['user_id']) && !isset($_SESSION['admin'])) { $u = $this->users->get_user(intval($_SESSION['user_id'])); if($u && $u->enabled) { $user = $u; $group = $this->users->get_group($user->group_id); } } && !isset($_SESSION['admin'] Quote Link to post Share on other sites
n1c Posted March 13, 2019 Author Report Share Posted March 13, 2019 А ты его под админом проверял? Или нет?Админу всегда показывается цена обычная))) Сразу видно, что человек код читать не умеет...Проверять надо в браузере, в котором не залогинен в админкуИ тогда все работает на ура. И проверено это все не один десяток раз)))согласен, мой косяк, не досмотрел код (зашел как админ).но все же хотелось бы свой вариант, не потому что мне надо именно так, нет, делаю для себя чисто стало интересно сделать. Quote Link to post Share on other sites
n1c Posted March 13, 2019 Author Report Share Posted March 13, 2019 То, что Вы имеете в виду, надо не утаивать, а сообщать ТОЧНО и ПОНЯТНО. В данном случае неизвестно, ГДЕ, НА КАКОЙ СТРАНИЦЕ, В КАКОМ МЕСТЕ неправильно выводится цена. И это, скорее всего, следствие Вашего изобретения, Вы в одном месте вывод изменили, а в другом - нет... От решения еще требуется, чтоб оно правильно функционировало на ВСЕХ страницах. А у Вас, как видно, пока выходит по принципу: одно строим, другое ломаем... А решение от WIZARD устроено так, что подставляет нужную цену всего лишь в одном файле, и все прекрасно работает, и не надо менять ни api/cart.php, ни в шаблонах (с чем Вы сейчас мучаетесь), ни в прочих местах... я не скрываю код, делаю на базовом движке БЕЗ ПРАВОК. foreach($items as $variant_id=>$item) { $purchase = null; if(!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; $purchase->variant = $item->variant; $purchase->amount = $item->amount; $cart->purchases[] = $purchase; if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2) { $cart->total_price += $item->variant->price_2*$item->amount; }else{ $cart->total_price += $item->variant->price*$item->amount; } $cart->total_products += $item->amount; } } по моему мнению проблема в коде if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])) && $user->group_id==2) -- это ваш вариант изменения в шаблоне корзины стоит {if $group->id == 2} {($purchase->variant->price_2*$purchase->amount)|convert} {$currency->sign|escape} {else} {($purchase->variant->price*$purchase->amount)|convert} {$currency->sign|escape} {/if} 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.