VM 1.x Вывести сразу 2 цены. Одну для группы default, а вторую для Gold

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

norka13

Создатель
Заблокирован
Регистрация
23 Фев 2009
Сообщения
41
Реакции
2
  • Автор темы
  • Заблокирован
  • #1
Подскажите, как можно вывести сразу две цены. Перерыла всю сеть. И русские и английские сайты. Ничего такого нет. Нашла только вот такой код в файл Price.tpl.php
Код:
if( !empty( $price_info["product_price_id"] )) { ?>
 
<span class="productPrice">
<?php echo $CURRENCY_DISPLAY -> getFullValue ( $base_price ) ?>
</span>
<span class="productPricemembre">
<?php $base_price2 = ( $base_price * .95 );
echo( '<a href="" target="_blank">Prix Membre Paintball Mirabel: </a>' ) . $CURRENCY_DISPLAY -> getFullValue ( $base_price2 ) . '<br />'
?>
</span>
<span class="productPriceelite">
<?php $base_price3 = ( $base_price * .90 );
echo( '<a href="" target="_blank">Prix Membre Elite: </a>' ) . $CURRENCY_DISPLAY -> getFullValue ( $base_price3 ) . '<br />' ;
?>
</span>

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

Порылась сама. Вот что нашла:
Код:
<?php
 
// Выдод информации
if ($GLOBALS['auth']['shopper_group_id'] == 5) {
  $dbprice = new ps_DB;
  $q  = "SELECT product_price_id,product_price FROM #__{vm}_product_price WHERE (#__{vm}_product_price.product_id=$product_id) AND (#__{vm}_product_price.shopper_group_id=6) AND (#__{vm}_product_price.price_quantity_start=0)";
  $dbprice->query($q);
while ($dbprice->next_record()) {
  $res_price=$dbprice->f("product_price");
  if ($page=="shop.browse") {
  echo "<br /><div style='border-right:6px solid #166D6F;padding-right:2px;padding-top:2px;padding-bottom:2px;'><font class='product_price_dillers_browse'>".$CURRENCY_DISPLAY->getFullValue($res_price)." </font></div>";
  }
  if ($page=="shop.product_details") {
  echo "(Цена для друзей: ".$CURRENCY_DISPLAY->getFullValue($res_price).")";
  }
  }
}
// конец дополнительного кода
?>
Смысл в том чтобы пользователи в группе Default видели вторую цену из группы gold( для них скидка идет. ) Чтобы понимали что регистрироваться выгодно.
Код не работает, цена просто не отображается. Похоже проблема вот здесь:
Код:
  $q  = "SELECT product_price_id,product_price FROM #__{vm}_product_price WHERE (#__{vm}_product_price.product_id=$product_id) AND (#__{vm}_product_price.shopper_group_id=6) AND (#__{vm}_product_price.price_quantity_start=0)";
Помогите плиз, очень надо.
 
Я бы реализовал вот так. В том же файле Price.tpl.php добавляем
Код:
$ps_product = $GLOBALS['ps_product'];
$goldPrice=$ps_product->get_price($product_id, $check_multiple_prices=true, $overrideShopperGroup='6' );
а потом, там где нам необходимо вывести голд ценник
Код:
<?php echo $CURRENCY_DISPLAY->getFullValue($goldPrice[product_base_price]) ?>
 
  • Автор темы
  • Заблокирован
  • #3
Спасибо за идею. Вы можете написать как оформить первый код, а то я что то не догоняю.
 
Вы можете написать как оформить первый код, а то я что то не догоняю.
Так, значит все по порядку и более подробно.
Как я уже писал, файл вы нашли правильно
Нашла только вот такой код в файл Price.tpl.php
В самом начале этого файла после строки
Код:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
вставляем вот этот кусок кода
Код:
<?php
$ps_product = $GLOBALS['ps_product'];
//Получаем цену для покупателей группы Gold. У этой группы id=6, что и отражаем в переменной $overrideShopperGroup='6'
$goldPrice=$ps_product->get_price($product_id, $check_multiple_prices=true, $overrideShopperGroup='6' );
?>
Теперь ниже по коду в этом же файле, там где у нас выводится цена, пишем примерно следующее
Код:
<?php
if( !empty( $price_info["product_price_id"] )) { ?>
    <!-- Обычная цена -->
    <span class="productPrice">
            <?php echo $CURRENCY_DISPLAY->getFullValue($base_price) ?>
    </span>
    <br />
<?php
}
//Проверяем, если для товара существует цена группы Gold, то выводим.
//Если проверку не делать, то будет выведено две одинаковые цены.
if( !($price_info["product_base_price"] == $goldPrice["product_base_price"])) { ?>
    <!-- Цена для покупателей группы Gold -->
    <span class="productGoldPrice">
            <?php echo $CURRENCY_DISPLAY->getFullValue($goldPrice[product_base_price]) ?>
    </span>
<?php
}
?>
Вот и все, этого должно быть достаточно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху