News:

Looking for documentation? Take a look on our wiki

Main Menu

Hide Add to Cart Buttons for non registered users

Started by Mongrel, August 28, 2012, 12:45:35 PM

Previous topic - Next topic

Mongrel

Hello,

I have searched for this all afternoon and can't find an answer?

I have my site setup so that unless you login, you don't see the prices, which is good, but you can still add products to the cart which is bad!!

I don't want unregistered users to be able to see the Add to Cart buttons - why would they, they can't buy anyway.

Can any one assist please?

Cheers
John

jenkinhill

Kelvyn
Lowestoft, Suffolk, UK

Retired from forum life November 2023

Please mention your VirtueMart, Joomla and PHP versions when asking a question in this forum

Mongrel

Hi,

Thanks for the reply but I have done that - And yes - The prices are gone - But the Add To Cart buttons are still there!!  Why?

ivus


Mongrel

Yes - But that would mean MUCH code change.  :(

I just can't understand why you would want to show the Add Cart if there are no prices?  What the???

ivus

Hi Mongrel,

It's only 3 lines of code.

QuoteI just can't understand why you would want to show the Add Cart if there are no prices?  What the???
-- I don't know.

Mongrel

really! Ok.. I am not good at all on PHP.

Can you please explain?

ivus

/component/com_virtuemart/views/productdetails/tmpl/default_addtocart.php



<?php
/**
 *
 * Show the product details page
 *
 * @package VirtueMart
 * @subpackage
 * @author Max Milbers, Valerie Isaksen
 * @todo handle child products
 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: default_addtocart.php 6260 2012-07-12 07:42:04Z Milbo $
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
$user =& JFactory::getUser();
if ( ! 
$user->get('guest')) {
?>

<div class="addtocart-area">

    <form method="post" class="product js-recalculate" action="index.php" >
<?php // Product custom_fields
if (!empty($this->product->customfieldsCart)) { ?>

    <div class="product-fields">
<?php foreach ($this->product->customfieldsCart as $field) { ?>
    <div class="product-field product-field-type-<?php echo $field->field_type ?>">
<span class="product-fields-title" ><strong><?php echo JText::_($field->custom_title?></strong></span>
<?php if ($field->custom_tip)
    echo JHTML::tooltip($field->custom_tipJText::_($field->custom_title), 'tooltip.png'); ?>

<span class="product-field-display"><?php echo $field->display ?></span>

<span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
    </div><br />
    <?php
}
?>

    </div>
<?php
}
/* Product custom Childs
 * to display a simple link use $field->virtuemart_product_id as link to child product_id
 * custom_value is relation value to child
 */

if (!empty($this->product->customsChilds)) {
    ?>

    <div class="product-fields">
    <?php foreach ($this->product->customsChilds as $field) { ?>
    <div class="product-field product-field-type-<?php echo $field->field->field_type ?>">
<span class="product-fields-title" ><strong><?php echo JText::_($field->field->custom_title?></strong></span>
<span class="product-field-desc"><?php echo JText::_($field->field->custom_value?></span>
<span class="product-field-display"><?php echo $field->display ?></span>

    </div><br />
<?php ?>
    </div>
<?php ?>

<div class="addtocart-bar">

<?php // Display the quantity box

    
$stockhandle VmConfig::get('stockhandle''none');
    if ((
$stockhandle == 'disableit' or $stockhandle == 'disableadd') and ($this->product->product_in_stock $this->product->product_ordered) < 1) {
 
?>

<a href="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id='.$this->product->virtuemart_product_id); ?>" class="notify"><?php echo JText::_('COM_VIRTUEMART_CART_NOTIFY'?></a>

<?php } else { ?>
<!-- <label for="quantity<?php echo $this->product->virtuemart_product_id?>" class="quantity_box"><?php echo JText::_('COM_VIRTUEMART_CART_QUANTITY'); ?>: </label> -->
    <span class="quantity-box">
<input type="text" class="quantity-input js-recalculate" name="quantity[]" value="<?php if (isset($this->product->min_order_level) && (int) $this->product->min_order_level 0) {
    echo 
$this->product->min_order_level;
} else {
    echo 
'1';
?>
" />
    </span>
    <span class="quantity-controls js-recalculate">
<input type="button" class="quantity-controls quantity-plus" />
<input type="button" class="quantity-controls quantity-minus" />
    </span>
    <?php // Display the quantity box END ?>

    <?php
    
// Display the add to cart button
    ?>

<span class="addtocart-button">
<?php echo shopFunctionsF::getAddToCartButton($this->product->orderable); ?>
</span>
<?php ?>

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

<?php // Display the add to cart button END  ?>
<input type="hidden" class="pname" value="<?php echo $this->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 $this->product->virtuemart_product_id ?>" />
    </form>

    <div class="clear"></div>
</div>
<?php 
}


Mongrel



ivus


Mongrel

Ahh Ok.  I see that in the templates.  However, If I just replace the one in the template I will lose all the styles I think.  :(

ivus



<?php
/**
 *
 * Show the product details page
 *
 * @package VirtueMart
 * @subpackage
 * @author Max Milbers, Valerie Isaksen
 * @todo handle child products
 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: default_addtocart.php 6260 2012-07-12 07:42:04Z Milbo $
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
$user =& JFactory::getUser();
if ( ! 
$user->get('guest')) {
?>


YOUR EXISTING CODE GOES HERE...

<?php 
}



And if you get lost here... might be a good idea to provide your code.

Mongrel

Yeah I tried that and it didn't work - maybe I am missing something.

Here is my entire code..

<?php
/**

* @Enterprise: Yagendoo Media GmbH
* @author: Yagendoo Team
* @url: http://www.yagendoo.com
* @copyright: Copyright (C) Yagendoo Media GmbH
* @license: Commercial, see LICENSE.php
* @product: Virtuemart Theme
*
*/
?>

<?php if(!VmConfig::get('use_as_catalog'0)): ?>
<div class="yagVmFlyAtc">
<form method="post" class="product yagVmFlyAtcForm js-recalculate" action="index.php" >
<?php //::> Custom fields cart ?>
<?php if(!empty($this->product->customfieldsCart)):  ?>
<div class="product-fields yagVmFlyProdFields">
<?php foreach($this->product->customfieldsCart as $field): ?>
<div class="yagVmFlyProdField yagVmFlyProdFieldType-<?php echo $field->field_type ?>">
<span class="yagVmFlyProdFieldTitle">
<?php echo  JText::_($field->custom_title?>
<?php if($field->custom_tip): ?>
<?php echo JHTML::tooltip($field->custom_tip,  JText::_($field->custom_title), 'tooltip.png'); ?>
<?php endif; ?>
</span>

<div class="yagVmFlyProdFieldRight">
<span class="yagVmFlyProdFieldDisplay"><?php echo $field->display ?></span>
<span class="yagVmFlyProdFieldDesc"><?php echo $field->custom_field_desc ?></span>
</div>

<div class="yagVmClear">&nbsp;</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>

<?php //::> Custom childs ?>
<?php if(!empty($this->product->customsChilds)):  ?>
<div class="yagVmFlyProdFields">
<?php foreach($this->product->customsChilds as $field):  ?>
<div class="yagVmFlyProdField yagVmFlyProdFieldType-<?php echo $field->field->field_type ?>">
<span class="yagVmFlyProdFieldTitle">
<?php echo JText::_($field->field->custom_title?>
</span>

<div class="yagVmFlyProdFieldRight">
<span class="yagVmFlyProdFieldDesc"><?php echo JText::_($field->field->custom_value?></span>
<span class="yagVmFlyProdFieldDisplay"><?php echo $field->display ?></span>
</div>

<div class="yagVmClear">&nbsp;</div>
</div>
<br />
<?php endforeach; ?>
</div>
<?php endif; ?>

<?php //::> Add to cart bar ?>
<div class="addtocart-bar yagVmFlyAtcBar">
<?php $stockhandle VmConfig::get('stockhandle''none'); ?>

<?php if( ($stockhandle == 'disableit' or $stockhandle == 'disableadd') and ($this->product->product_in_stock $this->product->product_ordered ) < ) : ?>
<a class="yagVmFlyNotifyBtn" href="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id='.$this->product->virtuemart_product_id); ?>">
<?php echo JText::_('COM_VIRTUEMART_CART_NOTIFY'?>
</a>
<?php else : ?>
<span class="yagVmFlyAtcBarQtyBox">
<input type="text" class="quantity-input yagVmFlyAtcBarQtyInpt js-recalculate" name="quantity[]" value="<?php if (isset($this->product->min_order_level) && (int) $this->product->min_order_level 0) { echo $this->product->min_order_level;} else { echo '1'; } ?>" />
</span>

<span class="quantity-controls yagVmFlyAtcBarQtyCtrl js-recalculate">
<input type="button" class="quantity-controls yagVmFlyAtcVarQtyPlus quantity-plus" />
<input type="button" class="quantity-controls yagVmFlyAtcVarQtyMinus quantity-minus" />
</span>

<div class="yagVmClear">&nbsp;</div>

<span class="addtocart-button yagVmFlyAtcBtn">
<input type="submit" name="addtocart"  class="yagVmFlyAtcBtn addtocart-button" value="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO'?>" title="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO'?>" />
</span>

<div class="yagVmClear">&nbsp;</div>
<?php endif; ?>
</div>

<input type="hidden" class="pname" value="<?php echo $this->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 $this->product->virtuemart_product_id ?>" />
<input type="hidden" name="virtuemart_manufacturer_id" value="<?php echo $this->product->virtuemart_manufacturer_id ?>" />
<input type="hidden" name="virtuemart_category_id[]" value="<?php echo $this->product->virtuemart_category_id ?>" />
</form>

<div class="yagVmClear">&nbsp;</div>
</div>
<?php endif; ?>

ivus



<?php
/**

* @Enterprise: Yagendoo Media GmbH
* @author: Yagendoo Team
* @url: http://www.yagendoo.com
* @copyright: Copyright (C) Yagendoo Media GmbH
* @license: Commercial, see LICENSE.php
* @product: Virtuemart Theme
*
*/
?>

<?php if(!VmConfig::get('use_as_catalog'0)): ?>

<?php
$user =& JFactory::getUser();
if ( ! $user->get('guest')):
?>


<div class="yagVmFlyAtc">
<form method="post" class="product yagVmFlyAtcForm js-recalculate" action="index.php" >
<?php //::> Custom fields cart ?>
<?php if(!empty($this->product->customfieldsCart)):  ?>
<div class="product-fields yagVmFlyProdFields">
<?php foreach($this->product->customfieldsCart as $field): ?>
<div class="yagVmFlyProdField yagVmFlyProdFieldType-<?php echo $field->field_type ?>">
<span class="yagVmFlyProdFieldTitle">
<?php echo  JText::_($field->custom_title?>
<?php if($field->custom_tip): ?>
<?php echo JHTML::tooltip($field->custom_tip,  JText::_($field->custom_title), 'tooltip.png'); ?>
<?php endif; ?>
</span>

<div class="yagVmFlyProdFieldRight">
<span class="yagVmFlyProdFieldDisplay"><?php echo $field->display ?></span>
<span class="yagVmFlyProdFieldDesc"><?php echo $field->custom_field_desc ?></span>
</div>

<div class="yagVmClear">&nbsp;</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>

<?php //::> Custom childs ?>
<?php if(!empty($this->product->customsChilds)):  ?>
<div class="yagVmFlyProdFields">
<?php foreach($this->product->customsChilds as $field):  ?>
<div class="yagVmFlyProdField yagVmFlyProdFieldType-<?php echo $field->field->field_type ?>">
<span class="yagVmFlyProdFieldTitle">
<?php echo JText::_($field->field->custom_title?>
</span>

<div class="yagVmFlyProdFieldRight">
<span class="yagVmFlyProdFieldDesc"><?php echo JText::_($field->field->custom_value?></span>
<span class="yagVmFlyProdFieldDisplay"><?php echo $field->display ?></span>
</div>

<div class="yagVmClear">&nbsp;</div>
</div>
<br />
<?php endforeach; ?>
</div>
<?php endif; ?>

<?php //::> Add to cart bar ?>
<div class="addtocart-bar yagVmFlyAtcBar">
<?php $stockhandle VmConfig::get('stockhandle''none'); ?>

<?php if( ($stockhandle == 'disableit' or $stockhandle == 'disableadd') and ($this->product->product_in_stock $this->product->product_ordered ) < ) : ?>
<a class="yagVmFlyNotifyBtn" href="<?php echo JRoute::_('index.php?option=com_virtuemart&view=productdetails&layout=notify&virtuemart_product_id='.$this->product->virtuemart_product_id); ?>">
<?php echo JText::_('COM_VIRTUEMART_CART_NOTIFY'?>
</a>
<?php else : ?>
<span class="yagVmFlyAtcBarQtyBox">
<input type="text" class="quantity-input yagVmFlyAtcBarQtyInpt js-recalculate" name="quantity[]" value="<?php if (isset($this->product->min_order_level) && (int) $this->product->min_order_level 0) { echo $this->product->min_order_level;} else { echo '1'; } ?>" />
</span>

<span class="quantity-controls yagVmFlyAtcBarQtyCtrl js-recalculate">
<input type="button" class="quantity-controls yagVmFlyAtcVarQtyPlus quantity-plus" />
<input type="button" class="quantity-controls yagVmFlyAtcVarQtyMinus quantity-minus" />
</span>

<div class="yagVmClear">&nbsp;</div>

<span class="addtocart-button yagVmFlyAtcBtn">
<input type="submit" name="addtocart"  class="yagVmFlyAtcBtn addtocart-button" value="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO'?>" title="<?php echo JText::_('COM_VIRTUEMART_CART_ADD_TO'?>" />
</span>

<div class="yagVmClear">&nbsp;</div>
<?php endif; ?>
</div>

<input type="hidden" class="pname" value="<?php echo $this->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 $this->product->virtuemart_product_id ?>" />
<input type="hidden" name="virtuemart_manufacturer_id" value="<?php echo $this->product->virtuemart_manufacturer_id ?>" />
<input type="hidden" name="virtuemart_category_id[]" value="<?php echo $this->product->virtuemart_category_id ?>" />
</form>

<div class="yagVmClear">&nbsp;</div>
</div>
   
<?php endif; ?>   
   
<?php endif; ?>