Автор Тема: Цены только для зарегистрированных и проверенных пользователей  (Прочитано 12819 раз)

Mantikor

  • Гость
Здравствуйте.
Подскажите уважаемые гуру как сделать чтобы цены были видны только для зарегистрированных и проверенных пользователей?
Поискав на форуме нашёл,что проверка залогиненых так:
 if (isset($_SESSION["cust_id"])) {
//пользователь залогинен
}
или
if (isset($_SESSION['cust_login']) && $_SESSION['cust_login'] == "yes") {
//пользователь залогинен
}
А как проверить Проверен ли пользователь и в каком файле лучше манипулировать с выводом цен, чтоб не было зависимости от шаблона?
Заранее спасибо!

Mantikor

  • Гость
slamm спасибо большое за подсказку! А подскажите как тогда работает в админке кнопка в Покупателях Проверен,что после её нажатия происходит и как это тоже учитывать, чтобы пользователи не прошедшии модерацию не могли заказывать и видеть цены?
И как скрыть кнопку Заказать, понятно что CONF_SHOW_ADD2CART в ноль если не залогинен но где?
Заранее сенкс!
« Последнее редактирование: Февраля 14, 2012, 03:23:15 pm от Mantikor »

Mantikor

  • Гость
slamm ещё раз спасибо,всё получилось. А можно ещё вопросик, я не много правлю шаблон под свои нужды, и встал в затруднение,как в файле product_brief.tpl.html прикрутить колонку с кол-вом уже добавленного товара в корзину(напротив каждого товара цифрами сколько его уже в корзине),в какой переменной это сидит($cart_content.quantity не пошло). Заранее спасибо.

Mantikor

  • Гость
Как вариант можно в файле cfg/functions.php найти функцию function show_price($price) и в ней дописать ваше условие, так как все (почти) цены проходят через эту функцию.
В конце дописываем вместо
return $csign_left.$price.$csign_right; if (isset($_SESSION["cust_id"])) {
return $csign_left.$price.$csign_right;
} else {
// ну а тот можно вывести какое то сообщение о регистрации например, или просто убрать else да и всё.
}
А как обойти,после это поправления прайс скачивается без цен?
Спасибо.

Mantikor

  • Гость
А как происходит формирование файла price.xls ? В каком файле?

Mantikor

  • Гость
Я уже нашёл,спасибо, но проблему это не решило, вызов show_price происходит через pricessCategories, а вот почему при этом не срабатывает проверка авторизации (if (isset($_SESSION["cust_id"]))) не совсем понимаю,не на столько пока в php силён... (

Mantikor

  • Гость
Подскажите а как из таблицы получить определённое значение из CUST_TABLE столбец grup
Фаил functions.php
Делал так,но возможно тут куча ошибок:

$sqlll="SELECT * FROM ".CUST_TABLE." WHERE custID='".(int)$_COOKIE['cust_id']."'";
 $rrr =db_assoc($sqlll);
if (isset($_SESSION["cust_id"])) {
if ( $rrr['grup']="1") {
return $csign_left.$price.$csign_right;

(в таблицу добавил столбец grup и туда при нажатии в админке кнопки в Покупателях Проверен добавляется 1, а как это проверить)

Mantikor

  • Гость
slamm спасибо огромное, такая мелоч и всё заработало,век живи век учись, добавил я короче и в админку в настроики Товаров чекбокс для включения отключения доступа к ценам и заказу только авторизированных и проверенных пользователей, добавил проверку пользователей... Тока вот пока отсутствие цен в скаченом прайсе не победил...

Mantikor

  • Гость
Другая проблема после этих манипуляций при оформлении заказа авторизованным пользователем(новым прокатывает) не присваивается номер заказа (фио адрес тоже) вообще получается переменная $orderer пустая и происходит складывание предыдущих заказов без номера(хотя кеш и куки чистил), заказ на почту приходит без номера,а в админке даже не добавляется новый заказ.
Как образуется переменная $orderer (когда удаляю поле grup созданное мною в таблице и переавторизововаюсь проблема пропадает)?

Mantikor

  • Гость
Да конечно добавляю в базе в конце, а вызываю везде где есть проверка разрешения добавления в корзину:
if (($row[6] > 0) && (CONF_SHOW_ADD2CART > 0))
{
if  (CONF_SHOW_ADD2CARTREG > 0)
{
 $sqlll="SELECT * FROM ".CUST_TABLE." WHERE custID='".(int)$_COOKIE['cust_id']."'";
 $rrr =db_assoc($sqlll);
if (isset($_SESSION["cust_id"]))
{
if ( $rrr['grup']=="1")
{
$row[28]=1;
}
}
}
if  (CONF_SHOW_ADD2CARTREG < 1) $row[28]=1;
}
else
  if ((CONF_SHOW_ADD2CART_INSTOCK > 0) && (CONF_SHOW_ADD2CART > 0) )
{
if  (CONF_SHOW_ADD2CARTREG > 0)
{
 $sqlll="SELECT * FROM ".CUST_TABLE." WHERE custID='".(int)$_COOKIE['cust_id']."'";
 $rrr =db_assoc($sqlll);
if (isset($_SESSION["cust_id"]))
{
if ( $rrr['grup']=="1")
{
$row[28]=1;
}
}
}
if  (CONF_SHOW_ADD2CARTREG < 1) $row[28]=1;
}
  else {$row[28]=0;}
возможно что то с кукисами? Такое ощущение что где то проверяется целостность таблицы CUST_TABLE и при добавлении ещё графы и при условии авторизации проверенного пользователя, что то не выполняется, ID пользователя получается 0, соответственно и в историю заказов всё записывается на orderID в значении 0...
может надо обнулять какую то переменную типо unset($rrrr['custID']); ?
« Последнее редактирование: Марта 13, 2012, 11:35:27 am от pehser »

SHOPMASTER

  • Гость
Mantikor, если у тебя получилось реализовать и есть немного свободного времени напиши пожалуйста в личку что и как сделал. Очень интересно. Заранее благодарен.

И отдельное спасибо за всеобщую помощь slamm™

Mantikor

  • Гость
slamm™ может подскажешь почему получается ID заказа и пользователя равное 0, может каким-то образом после этой манипуляции я обнуляю id пользователя в сессии?

Mantikor

  • Гость
Во всех где есть проверка разрешения добавления в корзину (ADD2Cart) product_detailed.php search_simple.php category.php brands.php tag.php и functions.php (тут цены show_price) и всё же почему я думаю что дело просто в добавлении колонки - когда я возвращаю все файла назад а колонка grup остаётся заказ всё равно с ID 0 получается? удоляю эту графу всё работает, добавляю снова баг, ведь это обрезаный движок от полного ShopScript возможно где то замут с колличеством граф в таблице CUST_TABLE...
« Последнее редактирование: Марта 14, 2012, 11:57:57 am от Mantikor »

Mantikor

  • Гость
Это я добавил новую проверку в админку(создал переменную) Цены видят только Авторизованные и Проверенные пользователи... Версия 5.0.2

Mantikor

  • Гость
Да конечно доступна,проверка её проходит же, её условия проверяется во всех файлах product_detailed.php search_simple.php category.php brands.php tag.php и functions.php выражением указаным выше и тут обьявляется product.inc.php, conf_product.tpl.html