Перейти к содержимому


Фотография
- - - - -

как убрать элемент цены, когда клиент совершил заказ?


  • Закрытая тема Тема закрыта
Сообщений в теме: 40

#21 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 08:59

эти варианты я уже пробовал , 

я выставил файл, только для того чтобы можно было видеть предложенный код.

еще чтобы на месте определить местонахождении всех скобок в этом коде

 

 

кстати если этот код привести до такого состояния

<?php
 
$element = $item->getElement('9c05aea5-a543-457d-9241-3424f31e14c4');
$inStock = $element->getList()->current()->inStock(1);
if ($inStock)  ?>
    <div class="product-buttons span12 price-value-position">
  
<?php echo $this->renderPosition('price-value'); ?>
 
</div>

 

 

то убирает кнопку в корзину, оставляя стоимость товара,

обратите внимание убраны эти скобки { }

 

 

 

 

хорошо было бы конечно, если можно было выводить дополнительную опцию сюда, 

показать при нулевом остатке 

2015-08-08 11-58-11 Скриншот экрана.png


Сообщение отредактировал jeyhunm: 08 August 2015 - 09:56

  • 0

#22 SmetDenis

SmetDenis

Отправлено 08 August 2015 - 10:05

Все же советую вам прочитать про синтаксис.
Наш код верный.

Вынести опцию в элемент цены не получится. У них (элементов и шаблонов материала) совершенно разных области видимости и разные сферы воздействия друг дна друга. Т.е они не пересекаются. Но ваша идея правильная, возможно в будущем появится подобная опция.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#23 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 10:17

у нас получается два кода 

код 1.

$element = $item->getElement('<PRICE_ELEMENT_ID>');

$balance = $element->getList()->current()->getValue(true, '_balance');

if ($balance == 0) {

// нет на складе

} else {

// есть на складе

}

 

 

код 2.

$element = $item->getElement('<PRICE_ELEMENT_ID>');

$inStock = $element->getList()->current()->inStock(1);
if ($inStock) { ?>
 
какой из них более правильный ? 
 
 

этот код на мой взгляд не правильно, из за это "{ ?>"   и за это "<?php }"

 

$element = $item->getElement('<PRICE_ELEMENT_ID>');

$inStock = $element->getList()->current()->inStock(1);

if ($inStock) { ?>

    <div class="product-buttons span12 price-value-position">

  

<?php echo $this->renderPosition('price-value'); ?>

 

</div>

<?php

}

 

 


Сообщение отредактировал jeyhunm: 08 August 2015 - 10:38

  • 0

#24 DMTR3000S

DMTR3000S

Отправлено 08 August 2015 - 10:49

конструкция php всегда заключается в теги, чтобы php модуль на сервере мог понять: "Ага, вот это моё, щас выполним": <?php какой-то код ?>

Ещё раз - всегда должна быть пара - открывающий тег <?php и закрывающий ?>

 

Денис правильно вам говорит - почитайте про синтаксис. Порекомендую найти курс Игоря Борисова по пыхе, и посмотреть хотя бы первые полтора-два часа. Поверьте, это снимет огромное количество вопросов.


  • 0

#25 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 11:01

да все это я знаю ,

пробовано различные варианты ,

если что то срабатывает, то это не то что мне нужно .

код убирает кнопку добавить в корзину.

а мне нужно , чтобы убрал цену товара когда остаток равен нулю , и все !

 

 

я знаю и об этом говорил еще в начало, что код не правильно написан, так как в первичном варианте, впереди отсутствует открывающая <?php

 

далее идет "команда" , затем почему то появляется  открывающая скобка  {  и закрывающая  ?>

 

и в конце еще  после див, остается открывающая <?php и закрывающая скобка }

 

разве я не прав? 

я его привел в порядок, сделал в таком виде 

 

<?php

$element = $item->getElement('9c05aea5-a543-457d-9241-3424f31e14c4');
$inStock = $element->getList()->current()->inStock(1);
if ($inStock)
?>
 
при этом коде, как я написал, убирается кнопка добавить в корзину. а не цена товара.

  • 0

#26 woodman

woodman

Отправлено 08 August 2015 - 11:12

Я делал такую фичу через CSS + две строчки JS кода.

 

Вот результат: http://nadzor.ua/ip-...0-3-mpix-vga-d1

 

Если Вам мое решение подходит - могу объяснить как я сделал.


  • 0

#27 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 11:15

после очередных обновлений все эти изменения аннулируются ? 

если нет, то пожалуйста !


  • 0

#28 woodman

woodman

Отправлено 08 August 2015 - 11:32

Как я понял, у Вас уже реализован функционал "Есть в наличии / Нет в наличии". Я именно к этому и привязался.

Задачу у меня была чуточку другая, но принцип тот же.

 

Когда появляется надпись "Нет в наличии", то в коде есть строка с классом .jbprice-balance-available-no:

<span id="archive" class="jbprice-balance-available-no"> Нет в наличии </span>

(id="archive" я добавил сам, использую его как якорь для JS кода).

 

Я просто проверяю наличие этого класса и если он есть, то присваиваю родителю (любого уровня) свой дополнительный класс и потом через CSS скрываю блоки цены и кнопок.

 

Вот этот код достаточно добавить в index.php

<script>
  if (jQuery("#archive").hasClass("jbprice-balance-available-no")) { 
      jQuery(".jbprice-balance-available-no").closest('.jbzoo-teaser-wrapper').addClass("die"); 
  } 
</script>

Соответственно, к родителю, у которого есть класс .jbzoo-teaser-wrapper я добавляю свой класс .die и оттуда уже могу управлять выводом всего блока через CSS.

 

При обновлении нужно будет только вернуть id="archive" на место. Хотя, может те, кто все же знает JS, а не как я, подскажут как избавится от якоря.


  • 0

#29 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 12:43

спасибо, 

лучше привести в порядок код с которым бодаемся.

 

я не понимаю, трудно исправить или расписать правильные теги в коде?  


  • 0

#30 jeyhunm

jeyhunm

Отправлено 08 August 2015 - 20:30

в общем пробовал различные варианты используя эти коды,

 

получается, что у всех товаров исчезает кнопка добавить корзину,

цена товара не исчезает.

может проверить этот код на другом ресурсе, чтобы удостоверится, что он не работает только у меня?

может еще будут другие предложении?

 

 

напомню, нужно убрать цену товара (только цену) когда этого товара нет на складе.


  • 0




Click to return to top of page in style!