• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Нужна помощь по корзине товаров

Статус
В этой теме нельзя размещать новые ответы.

Bobrov

Постоялец
Регистрация
7 Авг 2008
Сообщения
145
Реакции
13
DLE 7.5 MID TEAM
Модуль магазин для DLE

Проблема в следующем при добавлении товара в корзину ставиться цена
$row['amount'], а необходимо чтоб выполнялось условие

Код:
if( $is_logged and $member_id['user_group'] == 3 )
    	 	 	{
    	 	 		 $row['amount'] = intval ( $row['user_amount'] );
    	 	 	}
Если обновить страницу, то цена обновляется на ту, которая должна быть, подскажите что не так? Во всех остальных местах на сайте данной проблемы нет, то есть на странице товара все нормально, цена показывается для той группы в которой ты находишься.

Код:
<?php

	if ( !defined ( "DATALIFEENGINE" ))
	{
		  die ( "Hacking Attemp!" );
	}

   	function cart()
   	{
   		global $db, $config, $is_logged, $member_id;

   		if ( trim ( $_COOKIE['cart'] ) == '' )
		{
			 $cart = array ();
		}
 		else $cart = @unserialize ( $_COOKIE['cart'] );

	  	if ( !is_array ( $cart ) ) $cart = array ();

        if ( count ( $cart ) != 0 )
  		{
	  		 foreach ( $cart as $key => $value )
  			 {
         		$cart[ $key ] = abs ( intval ( $value ));
  			 }

	  		 $ids = @implode ( ",", $cart );

    	 	 $sql_result = $db->query ( "SELECT id, title, amount, user_amount FROM " . PREFIX . "_shop WHERE approve = '1' AND id IN ({$ids}) ORDER BY title ASC" );
			 
			 $cart_buffer = <<<HTML
<table cellpadding="4" cellspacing="0" border="0" width="100%">
HTML;

			 $total = 0;

				while ( $row = $db->get_row ( $sql_result ))
    	 	 	{
				$row['amount'] = intval ( $row['amount'] );
				
			  	if( $is_logged and $member_id['user_group'] == 3 )
    	 	 	{
    	 	 		 $row['amount'] = intval ( $row['user_amount'] );
    	 	 	}
				
    	 	 	$total += $row['amount'];

     		 	$title = stripslashes ( $row['title'] );
     	    	if ( strlen ( $title ) > 30 ) $title = substr ( $title, 0, 30 ) . '...';

     	    	$title = "<a href=\"{$config['http_home_url']}shop/{$row['id']}.html\" target=\"_blank\">{$title}</a>";

          		$cart_buffer .= <<<HTML
				
<tr>
	<td width="75%">{$title}</td>
	<td width="15%">{$row['amount']} рублей</td>
	<td  width="10%" align="center"><img src="{$config['http_home_url']}engine/modules/shop/images/delete.gif" title="Удалить из корзины" width="16" height="16" style="cursor:hand" onClick="del_cart('{$row['id']}'); return false;" /></td>
</tr>
HTML;
     		 }

     	 	$cart_buffer .= <<<HTML
<tr>
<td colspan="3"><hr>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="{$config['http_home_url']}shop/order.html">Оформить заказ</a></td>
    <td class="total">Общая стоимость заказа: {$total} рублей</td>
  </tr>
</table>
</td>
</tr>
</table>
HTML;

  		}
  		else
  		{
  			$cart_buffer = 'Корзина пуста';
  		}

  		return $cart_buffer;
   	}

?>
 
Проблема решена, надо было сделать дополнительный запрос к базе в функции добавления в корзину, а именно

$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE user_id='" . intval( $_SESSION['dle_user_id'] ) . "'" );

Надеюсь кому-нибудь пригодиться, короче теперь есть нормальный вариант корзины для дле с возможностью выставления различных цен для разных групп пользователей.
 
Оформи отдельной темой все исправленные баги и тп ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху