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


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

Убрать кнопку "в корзину" в статусе "под заказ"

корзина под заказ нулевая цена

Сообщений в теме: 6

#1 internetmaster

internetmaster

Отправлено 19 January 2018 - 21:39

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

 

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


  • 0
новичок

#2 DMTR3000S

DMTR3000S

Отправлено 19 January 2018 - 22:51

Товар со статусом "Под заказ" какбэ не добавляется в корзину по умолчанию.

 

В любом случае, ваша задача решается достаточно просто на уровне шаблона примерно так:

  1. <?php
  2. $jbprice = $item->getElement('ELEMENT_ID'); // Получаем элемент цены по его ID
  3. $list = $jbprice->getList(); // Получаем объект, через который дотянемся до инфы о наличии
  4. if($list->current()->inStock(1)) {
  5. echo $this->renderPosition('button'); // Если товар в наличии, то отображаем позицию с кнопкой
  6. } else {
  7. echo '<span class="out-of-stock">Нет в наличии</span'; // Иначе отображаем надпись "Нет в наличии"
  8. }
  9. ?>

ELEMENT_ID берётся в админке, там где шаблоны типов собраны.


  • 3

#3 internetmaster

internetmaster

Отправлено 01 March 2018 - 13:09

DMTR3000S сказал(а) 19 Янв 2018 - 21:51:

Товар со статусом "Под заказ" какбэ не добавляется в корзину по умолчанию.

 

В любом случае, ваша задача решается достаточно просто на уровне шаблона примерно так:

  1. <?php
  2. $jbprice = $item->getElement('ELEMENT_ID'); // Получаем элемент цены по его ID
  3. $list = $jbprice->getList(); // Получаем объект, через который дотянемся до инфы о наличии
  4. if($list->current()->inStock(1)) {
  5. echo $this->renderPosition('button'); // Если товар в наличии, то отображаем позицию с кнопкой
  6. } else {
  7. echo '<span class="out-of-stock">Нет в наличии</span'; // Иначе отображаем надпись "Нет в наличии"
  8. }
  9. ?>

ELEMENT_ID берётся в админке, там где шаблоны типов собраны.

Укажите путь к файлу, где вставить этот код


  • 0
новичок

#4 DMTR3000S

DMTR3000S

Отправлено 01 March 2018 - 21:09

В full.php или teaser.php, например. Смотря где вам нужно/не нужно показывать кнопку. Файлы лежат здесь:

  1. /media/zoo/applications/jbuniversal/templates/uikit/renderer/item/

  • 0

#5 internetmaster

internetmaster

Отправлено 02 March 2018 - 08:53

DMTR3000S сказал(а) 01 Мар 2018 - 20:09:

 

В full.php или teaser.php, например. Смотря где вам нужно/не нужно показывать кнопку. Файлы лежат здесь:

  1. /media/zoo/applications/jbuniversal/templates/uikit/renderer/item/

В итоге ничего не получилось, буду признателен, если кто-то отзовется и пришлет какое-то решение или идею, как можно этого добиться. Меня даже устроит один из двух вариантов, когда можно будет скрыть все, что входит в позицию price или отдельно кнопку.


Сообщение отредактировал internetmaster: 02 March 2018 - 08:55

  • 0
новичок

#6 DMTR3000S

DMTR3000S

Отправлено 02 March 2018 - 09:41

Покажите содержимое редактируемого файла с уже внесёнными вами правками. Вы используете шаблон uikit? ID элемента цены свой поставили? Или вы даже не попытались осмыслить приведённый выше код и просто скопипастили его?


  • 0

#7 internetmaster

internetmaster

Отправлено 05 March 2018 - 08:22

DMTR3000S сказал(а) 02 Мар 2018 - 08:41:

Покажите содержимое редактируемого файла с уже внесёнными вами правками. Вы используете шаблон uikit? ID элемента цены свой поставили? Или вы даже не попытались осмыслить приведённый выше код и просто скопипастили его?

использую шаблон uikit
вместо ID поставил dc2307ab-2345-4446-8d38-1c98e3599035
 
Я обращался к PHP специалисту, он сказал что в файле full.php этот код некуда вставить (не будет работать) 
 
Попробовал самостоятельно вставить, кнопка пропала на всех страницах (где есть цена и где нет цены) 
  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. *
  5. * @package jbzoo
  6. * @version 2.x Pro
  7. * @author JBZoo App http://jbzoo.com
  8. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  9. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  10. * @coder Denis Smetannikov <denis@jbzoo.com>
  11. */
  12.  
  13. // no direct access
  14. defined('_JEXEC') or die('Restricted access');
  15.  
  16.  
  17. $align = $this->app->jbitem->getMediaAlign($item, $layout);
  18. $tabsId = $this->app->jbstring->getId('tabs');
  19. //echo print_r($this->app->jbitem->app);
  20. ?>
  21.  
  22. <?php if ($this->checkPosition('title')) : ?>
  23. <h1 class="item-title"><?php echo $this->renderPosition('title'); ?></h1>
  24. <?php endif; ?>
  25.  
  26. <div class="uk-panel uk-panel-box uk-clearfix">
  27. <div class="uk-grid">
  28. <div class="uk-width-medium-1-2">
  29. <?php if ($this->checkPosition('image')) : ?>
  30. <div class="item-image uk-divider">
  31. <?php echo $this->renderPosition('image'); ?>
  32. </div>
  33. <?php endif; ?>
  34.  
  35. <?php if ($this->checkPosition('meta')) : ?>
  36. <div class="item-metadata">
  37. <ul class="uk-list">
  38. <?php echo $this->renderPosition('meta', array('style' => 'list')); ?>
  39. </ul>
  40. </div>
  41. <?php endif; ?>
  42.  
  43. <?php if ($this->checkPosition('buttons')) : ?>
  44. <div class="item-buttons uk-clearfix">
  45. <?php echo $this->renderPosition('buttons', array('style' => 'block')); ?>
  46. </div>
  47. <?php endif; ?>
  48. </div>
  49. <?php
  50. $jbprice = $item->getElement('dc2307ab-2345-4446-8d38-1c98e3599035'); // Получаем элемент цены по его ID
  51. $list = $jbprice->getList(); // Получаем объект, через который дотянемся до инфы о наличии
  52. if($list->current()->inStock(1)) {
  53. echo $this->renderPosition('button'); // Если товар в наличии, то отображаем позицию с кнопкой
  54. } else {
  55. echo '<span class="out-of-stock">Нет в наличии</span'; // Иначе отображаем надпись "Нет в наличии"
  56. }
  57. <?php if ($this->checkPosition('price')) : ?>
  58. <div class="uk-width-medium-1-2">
  59. <div class="item-price">
  60. <?php echo $this->renderPosition('price'); ?>
  61. </div>
  62. </div>
  63. <?php endif; ?>
  64. </div>?>
  65.  
  66. <?php if ($this->checkPosition('social')) : ?>
  67. <div class="uk-grid item-social">
  68. <div class="uk-width-medium-1-1">
  69. <?php echo $this->renderPosition('social', array('style' => 'block')); ?>
  70. </div>
  71. </div>
  72. <?php endif; ?>
  73. </div>
  74.  
  75. <div class="tab-container uk-article-divider">
  76. <ul class="uk-tab" data-uk-tab="{connect:'#<?php echo $tabsId; ?>'}">
  77. <?php if ($this->checkPosition('text')) : ?>
  78. <li>
  79. <a href="#tab-text">
  80. <i class="uk-icon-info"></i>
  81. <?php echo JText::_('JBZOO_ITEM_TAB_DESCRIPTION'); ?>
  82. </a>
  83. </li>
  84. <?php endif; ?>
  85.  
  86. <?php if ($this->checkPosition('properties')) : ?>
  87. <li>
  88. <a href="#tab-properties">
  89. <i class="uk-icon-list"></i>
  90. <?php echo JText::_('JBZOO_ITEM_TAB_PROPS'); ?>
  91. </a>
  92. </li>
  93. <?php endif; ?>
  94.  
  95. <?php if ($this->checkPosition('gallery')) : ?>
  96. <li>
  97. <a href="#tab-gallery">
  98. <i class="uk-icon-image"></i>
  99. <?php echo JText::_('JBZOO_ITEM_TAB_GALLERY'); ?>
  100. </a>
  101. </li>
  102. <?php endif; ?>
  103.  
  104. <?php if ($this->checkPosition('comments')) : ?>
  105. <li>
  106. <a href="#tab-comments">
  107. <?php echo JText::_('JBZOO_ITEM_TAB_COMMENTS'); ?>
  108. <span class="badge"><?php echo $item->getCommentsCount(); ?></span>
  109. </a>
  110. </li>
  111. <?php endif; ?>
  112. </ul>
  113.  
  114. <ul class="uk-switcher uk-margin" id="<?php echo $tabsId; ?>">
  115. <?php if ($this->checkPosition('text')) : ?>
  116. <li id="tab-text">
  117. <div class="item-text">
  118. <?php echo $this->renderPosition('text', array('style' => 'block')); ?>
  119. </div>
  120. </li>
  121. <?php endif; ?>
  122.  
  123. <?php if ($this->checkPosition('properties')) : ?>
  124. <table class="uk-table uk-table-hover uk-table-striped">
  125. <?php echo $this->renderPosition('properties', array(
  126. 'tooltip' => true,
  127. 'style' => 'jbtable',
  128. )); ?>
  129. </table>
  130. <?php endif; ?>
  131.  
  132. <?php if ($this->checkPosition('gallery')) : ?>
  133. <li id="tab-gallery">
  134. <?php echo $this->renderPosition('gallery', array(
  135. 'labelTag' => 'h4',
  136. 'style' => 'jbblock',
  137. )); ?>
  138. </li>
  139. <?php endif; ?>
  140.  
  141. <?php if ($this->checkPosition('comments')) : ?>
  142. <li id="tab-comments">
  143. <?php echo $this->renderPosition('comments'); ?>
  144. </li>
  145. <?php endif; ?>
  146. </ul>
  147. </div>
  148.  
  149. <?php if ($this->checkPosition('related')) : ?>
  150. <div class="uk-grid item-related">
  151. <div class="uk-width-medium-1-1">
  152. <?php echo $this->renderPosition('related', array(
  153. 'labelTag' => 'h4',
  154. 'style' => 'jbblock',
  155. )); ?>
  156. </div>
  157. </div>
  158. <?php endif; ?>

  • 0
новичок





Темы с аналогичным тегами корзина, под заказ, нулевая цена

Click to return to top of page in style!