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

Тема в разделе "DLE", создана пользователем Bobrov, 5 мар 2009.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Bobrov

    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;
       	}
    
    ?>
     
  2. Bobrov

    Bobrov Постоялец

    Регистр.:
    7 авг 2008
    Сообщения:
    145
    Симпатии:
    13
    Проблема решена, надо было сделать дополнительный запрос к базе в функции добавления в корзину, а именно

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

    Надеюсь кому-нибудь пригодиться, короче теперь есть нормальный вариант корзины для дле с возможностью выставления различных цен для разных групп пользователей.
     
  3. Хортица

    Хортица Прохожие

    Оформи отдельной темой все исправленные баги и тп ;)
     
Статус темы:
Закрыта.