1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

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

Тема в разделе "Virtuemart", создана пользователем norka13, 14 май 2012.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
  1. norka13

    norka13 Создатель

    Заблокирован
    Регистр.:
    23 фев 2009
    Сообщения:
    41
    Симпатии:
    2
    Подскажите, как можно вывести сразу две цены. Перерыла всю сеть. И русские и английские сайты. Ничего такого нет. Нашла только вот такой код в файл 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)";
    Помогите плиз, очень надо.
     
  2. vitmar

    vitmar Постоялец

    Регистр.:
    27 апр 2012
    Сообщения:
    84
    Симпатии:
    40
    Я бы реализовал вот так. В том же файле 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. norka13

    norka13 Создатель

    Заблокирован
    Регистр.:
    23 фев 2009
    Сообщения:
    41
    Симпатии:
    2
    Спасибо за идею. Вы можете написать как оформить первый код, а то я что то не догоняю.
     
  4. vitmar

    vitmar Постоялец

    Регистр.:
    27 апр 2012
    Сообщения:
    84
    Симпатии:
    40
    Так, значит все по порядку и более подробно.
    Как я уже писал, файл вы нашли правильно
    В самом начале этого файла после строки
    Код:
    <?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
    }
    ?>
    Вот и все, этого должно быть достаточно.
     
Статус темы:
Закрыта.