Кнопка Купить в категории Virtuemart 2

Задача, конечно, тривиальная, но где гарантия, что я не забуду через полгода-год, как это делать 🙂 Надо, чтобы в категории Virtuemart 2 пользователь мог заказать купить товар. Делов-то.

Открываем файл /components/com_virtuemart/views/category/tmpl/default.php (этот файл как раз только и занимается тем, что выводит товары в список категории). Я начал писать со строки 264 (после названия товара):

<h2><?php echo JHTML::link ($product->link, $product->product_name); ?></h2>

Вставляем этот код:

<form method="post" class="product" action="index.php" id="addtocartproduct<?php echo $product->virtuemart_product_id ?>">
    <?php
    if (isset($product->min_order_level))
        $step = $product->min_order_level;
    else
        $step = 1;
    if ($step == 0)
        $step = 1;
    $alert = JText::sprintf('COM_VIRTUEMART_WRONG_AMOUNT_ADDED', $step);
    ?>
    <div class="addtocart-bar">

<?php // Display the quantity box  ?>
        <span class="quantity-box">
            <input  type="text" class="quantity-input" name="quantity[]"  value="<?php echo $step ?>" />
        </span>
        <span class="quantity-controls">
            <input type="button" class="quantity-controls quantity-plus" />
            <input type="button" class="quantity-controls quantity-minus" />
        </span>
        <?php // Display the quantity box END  ?>

        <?php
        // Add the button
        $button_lbl = JText::_('COM_VIRTUEMART_CART_ADD_TO');
        $button_cls = ''; //$button_cls = 'addtocart_button';
        if (VmConfig::get('check_stock') == '1' && !$product->product_in_stock) {
            $button_lbl = JText::_('COM_VIRTUEMART_CART_NOTIFY');
            $button_cls = 'notify-button';
        }
        ?>

<?php // Display the add to cart button  ?>
        <span class="addtocart-button">
            <input type="submit" name="addtocart"  class="addtocart-button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
        </span>

        <div class="clear"></div>
    </div>

<?php // Display the add to cart button END  ?>
    <input type="hidden" class="pname" value="<?php echo $product->product_name ?>">
    <input type="hidden" name="option" value="com_virtuemart" />
    <input type="hidden" name="view" value="cart" />
    <noscript><input type="hidden" name="task" value="add" /></noscript>
    <input type="hidden" name="virtuemart_product_id[]" value="<?php echo $product->virtuemart_product_id ?>" />
<?php /** @todo Handle the manufacturer view */ ?>
    <input type="hidden" name="virtuemart_manufacturer_id" value="<?php echo $product->virtuemart_manufacturer_id ?>" />
    <input type="hidden" name="virtuemart_category_id[]" value="<?php echo $product->virtuemart_category_id ?>" />
</form>

По сути, этот же код выводит кнопу «Купить» в карточке товара. Отличия есть, предлагаю вам найти их самим, они не настолько глобальны, чтобы заострять на них внимание.

Кстати, в этом коде я учел минимальное количество, которое может заказать пользователь (оно само проставляется в поле «Количество»):

    <?php
    if (isset($product->min_order_level))
        $step = $product->min_order_level;
    else
        $step = 1;
    if ($step == 0)
        $step = 1;
    $alert = JText::sprintf('COM_VIRTUEMART_WRONG_AMOUNT_ADDED', $step);
    ?>
<input  type="text" class="quantity-input" name="quantity[]"  value="<?php echo $step ?>" />

Ну, вот как-то так…

0

Добавить комментарий