Странность с плагином мульттивалютности.



  • Нашел очень странную вещицу, сложность в том что она еле уловима, но все же присутствует. Проблема с мультивалютностью. В общем причина следующая. В начальном варианте мультивалютность работает прелестно, считается рассчитывается, но через некоторое время когда чистится сессия все слетает, хотя кука продолжает висеть. И в итоге если юзер возвращается на сайт, то корзина почему то сбрасывается, при чем в сессии и куке все висит правильно, конечно можно было бы вызывать пересчет корзины каждый раз, но как по мне это не очень красиво.



  • Еще интересная вещь, я чищу сессию, сессия очищается, но когда перегружаю страницу, корзинка как была полная. Видимо где то здесь зарыт топор.



  • В принципе я на данный момент просто решил это дело следующим образом

    $purchases = !empty( $_SESSION['shk_order'] ) ? $_SESSION['shk_order'] : array();
    
            if( !empty( $purchases ) ){
               foreach( $purchases as $key => &$purchase ){
                  if( isset( $purchase['old_price'] ) ){
                       $base_price = $purchase['old_price'];
                  }
                  else if( !isset( $purchase['old_price'] ) ) {
                       $purchase['old_price'] = $purchase['price'];
                       $base_price = $purchase['price'];
                  }
                                    
                  $purchase['price'] = shk_currency_calc( $scriptProperties, $base_price, $currency_id );
                                    
                  //Доп. параметры
                  if( !empty( $purchase['options'] ) ){
                       foreach( $purchase['options'] as &$addit_param ){
                                            
                       if( !isset( $addit_param[3] ) ) $addit_param[3] = $addit_param[1];
                            $addit_param[1] = shk_currency_calc( $scriptProperties, $addit_param[3], $currency_id );
                       }
                  }
                                    
            	}
            	$_SESSION['shk_order'] = $purchases;
            }
    

    просто вставил пересчет перед каждым вызовом страницы, это не очень элегантное решение, но пока работает.



Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.