Jump to content


Photo
- - - - -

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

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

6 replies to this topic

#1 internetmaster

internetmaster
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 85
  • topics: 34

Posted 19 January 2018 - 21:39

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

 

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


  • 0
новичок

#2 DMTR3000S

DMTR3000S
  • JBZoo User (rus)
  • User rate: 110.7
  • posts: 1044
  • topics: 44

Posted 19 January 2018 - 22:51

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

 

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

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

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


  • 3

#3 internetmaster

internetmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 85
  • topics: 34

Posted 01 March 2018 - 13:09

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

 

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

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

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

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


  • 0
новичок

#4 DMTR3000S

DMTR3000S
  • JBZoo User (rus)
  • User rate: 110.7
  • posts: 1044
  • topics: 44

Posted 01 March 2018 - 21:09

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

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

  • 0

#5 internetmaster

internetmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 85
  • topics: 34

Posted 02 March 2018 - 08:53

 

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

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

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


Edited by internetmaster, 02 March 2018 - 08:55.

  • 0
новичок

#6 DMTR3000S

DMTR3000S
  • JBZoo User (rus)
  • User rate: 110.7
  • posts: 1044
  • topics: 44

Posted 02 March 2018 - 09:41

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


  • 0

#7 internetmaster

internetmaster
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 85
  • topics: 34

Posted 05 March 2018 - 08:22

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

использую шаблон uikit
вместо ID поставил dc2307ab-2345-4446-8d38-1c98e3599035
 
Я обращался к PHP специалисту, он сказал что в файле full.php этот код некуда вставить (не будет работать) 
 
Попробовал самостоятельно вставить, кнопка пропала на всех страницах (где есть цена и где нет цены) 
<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


$align  = $this->app->jbitem->getMediaAlign($item, $layout);
$tabsId = $this->app->jbstring->getId('tabs');
//echo print_r($this->app->jbitem->app);
?>

<?php if ($this->checkPosition('title')) : ?>
    <h1 class="item-title"><?php echo $this->renderPosition('title'); ?></h1>
<?php endif; ?>

<div class="uk-panel uk-panel-box uk-clearfix">
    <div class="uk-grid">
        <div class="uk-width-medium-1-2">
            <?php if ($this->checkPosition('image')) : ?>
                <div class="item-image uk-divider">
                    <?php echo $this->renderPosition('image'); ?>
                </div>
            <?php endif; ?>

            <?php if ($this->checkPosition('meta')) : ?>
                <div class="item-metadata">
                    <ul class="uk-list">
                        <?php echo $this->renderPosition('meta', array('style' => 'list')); ?>
                    </ul>
                </div>
            <?php endif; ?>

            <?php if ($this->checkPosition('buttons')) : ?>
                <div class="item-buttons uk-clearfix">
                    <?php echo $this->renderPosition('buttons', array('style' => 'block')); ?>
                </div>
            <?php endif; ?>
        </div>
<?php
    $jbprice = $item->getElement('dc2307ab-2345-4446-8d38-1c98e3599035'); // Получаем элемент цены по его ID
     
    $list = $jbprice->getList(); // Получаем объект, через который дотянемся до инфы о наличии
    
    if($list->current()->inStock(1)) {
        echo $this->renderPosition('button'); // Если товар в наличии, то отображаем позицию с кнопкой
    } else {
        echo '<span class="out-of-stock">Нет в наличии</span'; // Иначе отображаем надпись "Нет в наличии"
    }
        <?php if ($this->checkPosition('price')) : ?>
            <div class="uk-width-medium-1-2">
                <div class="item-price">
                    <?php echo $this->renderPosition('price'); ?>
                </div>
            </div>
        <?php endif; ?> 
    </div>?>

    <?php if ($this->checkPosition('social')) : ?>
        <div class="uk-grid item-social">
            <div class="uk-width-medium-1-1">
                <?php echo $this->renderPosition('social', array('style' => 'block')); ?>
            </div>
        </div>
    <?php endif; ?>
</div>

<div class="tab-container uk-article-divider">
    <ul class="uk-tab" data-uk-tab="{connect:'#<?php echo $tabsId; ?>'}">
        <?php if ($this->checkPosition('text')) : ?>
            <li>
                <a href="#tab-text">
                    <i class="uk-icon-info"></i>
                    <?php echo JText::_('JBZOO_ITEM_TAB_DESCRIPTION'); ?>
                </a>
            </li>
        <?php endif; ?>

        <?php if ($this->checkPosition('properties')) : ?>
            <li>
                <a href="#tab-properties">
                    <i class="uk-icon-list"></i>
                    <?php echo JText::_('JBZOO_ITEM_TAB_PROPS'); ?>
                </a>
            </li>
        <?php endif; ?>

        <?php if ($this->checkPosition('gallery')) : ?>
            <li>
                <a href="#tab-gallery">
                    <i class="uk-icon-image"></i>
                    <?php echo JText::_('JBZOO_ITEM_TAB_GALLERY'); ?>
                </a>
            </li>
        <?php endif; ?>

        <?php if ($this->checkPosition('comments')) : ?>
            <li>
                <a href="#tab-comments">
                    <?php echo JText::_('JBZOO_ITEM_TAB_COMMENTS'); ?>
                    <span class="badge"><?php echo $item->getCommentsCount(); ?></span>
                </a>
            </li>
        <?php endif; ?>
    </ul>

    <ul class="uk-switcher uk-margin" id="<?php echo $tabsId; ?>">
        <?php if ($this->checkPosition('text')) : ?>
            <li id="tab-text">
                <div class="item-text">
                    <?php echo $this->renderPosition('text', array('style' => 'block')); ?>
                </div>
            </li>
        <?php endif; ?>

        <?php if ($this->checkPosition('properties')) : ?>
            <table class="uk-table uk-table-hover uk-table-striped">
                <?php echo $this->renderPosition('properties', array(
                    'tooltip' => true,
                    'style'   => 'jbtable',
                )); ?>
            </table>
        <?php endif; ?>

        <?php if ($this->checkPosition('gallery')) : ?>
            <li id="tab-gallery">
                <?php echo $this->renderPosition('gallery', array(
                    'labelTag' => 'h4',
                    'style'    => 'jbblock',
                )); ?>
            </li>
        <?php endif; ?>

        <?php if ($this->checkPosition('comments')) : ?>
            <li id="tab-comments">
                <?php echo $this->renderPosition('comments'); ?>
            </li>
        <?php endif; ?>
    </ul>
</div>

<?php if ($this->checkPosition('related')) : ?>
    <div class="uk-grid item-related">
        <div class="uk-width-medium-1-1">
            <?php echo $this->renderPosition('related', array(
                'labelTag' => 'h4',
                'style'    => 'jbblock',
            )); ?>
        </div>
    </div>
<?php endif; ?>

  • 0
новичок





Also tagged with one or more of these keywords: корзина, под заказ, нулевая цена

Click to return to top of page in style!