restrict contact button to registered users

  • Posts: 108
  • Thank you received: 6
9 years 8 months ago #166053

-- HikaShop version -- : 2.3.2

Hi,

I was looking for an option to prevent someone from contacting the vendor without registering? (on the product page)

i.e. send them to the registration page when they attempt to contact vendor

or is there code I could add to do this?

thanks

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
9 years 8 months ago #166105

Hi,

You can edit the view "product / show_default" and replace:

	<div id="hikashop_product_contact_main" class="hikashop_product_contact_main">
		<?php
		$contact = $this->config->get('product_contact',0);
		if (hikashop_level(1) && ($contact == 2 || ($contact == 1 && !empty ($this->element->product_contact)))) {
			$empty = '';
			$params = new HikaParameter($empty);
			global $Itemid;
			$url_itemid='';
			if(!empty($Itemid)){
				$url_itemid='&Itemid='.$Itemid;
			}
			echo $this->cart->displayButton(JText :: _('CONTACT_US_FOR_INFO'), 'contact_us', $params, hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid), 'window.location=\'' . hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid) . '\';return false;');
		}
		?>
	</div>
By:
<?php if(hikashop_loadUser() != null){ ?>
	<div id="hikashop_product_contact_main" class="hikashop_product_contact_main">
		<?php
		$contact = $this->config->get('product_contact',0);
		if (hikashop_level(1) && ($contact == 2 || ($contact == 1 && !empty ($this->element->product_contact)))) {
			$empty = '';
			$params = new HikaParameter($empty);
			global $Itemid;
			$url_itemid='';
			if(!empty($Itemid)){
				$url_itemid='&Itemid='.$Itemid;
			}
			echo $this->cart->displayButton(JText :: _('CONTACT_US_FOR_INFO'), 'contact_us', $params, hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid), 'window.location=\'' . hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid) . '\';return false;');
		}
		?>
	</div>
<?php } ?>

This way the contact button will only be displayed for registered users.

Please Log in or Create an account to join the conversation.

  • Posts: 108
  • Thank you received: 6
9 years 8 months ago #166148

thanks Xavier - perfect:)

Please Log in or Create an account to join the conversation.

  • Posts: 16
  • Thank you received: 2
7 years 10 months ago #241789

Sorry It didnt worked for me :unsure: "Ask a question button" still pop-up at no registered users.

My final code after editing product show/default was:

<?php
/**
 * @package  HikaShop for Joomla!
 * @version  2.6.0
 * @author  hikashop.com
 * @copyright  (C) 2010-2015 HIKARI SOFTWARE. All rights reserved.
 * @license  GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><div id="hikashop_product_top_part" class="hikashop_product_top_part">
<?php if(!empty($this->element->extraData->topBegin)) { echo implode("\r\n",$this->element->extraData->topBegin); } ?>
  <h1>
    <span id="hikashop_product_name_main" class="hikashop_product_name_main">
      <?php
      if (hikashop_getCID('product_id')!=$this->element->product_id && isset ($this->element->main->product_name))
        echo $this->element->main->product_name;
      else
        echo $this->element->product_name;
      ?>
    </span>
    <?php if ($this->config->get('show_code')) { ?>
    <span id="hikashop_product_code_main" class="hikashop_product_code_main">
      <?php
      echo $this->element->product_code;
      ?>
    </span>
    <?php } ?>
  </h1>
<?php if(!empty($this->element->extraData->topEnd)) { echo implode("\r\n",$this->element->extraData->topEnd); } ?>
<?php
  $this->setLayout('show_block_social');
  echo $this->loadTemplate();
?>
</div>
<?php if(HIKASHOP_RESPONSIVE){ ?>
  <div class="<?php echo HK_GRID_ROW; ?>">
<?php } ?>
<div id="hikashop_product_left_part" class="hikashop_product_left_part <?php echo HK_GRID_COL_6; ?>">
  <?php
  if(!empty($this->element->extraData->leftBegin)) { echo implode("\r\n",$this->element->extraData->leftBegin); }

  $this->row = & $this->element;
  $this->setLayout('show_block_img');
  echo $this->loadTemplate();

  if(!empty($this->element->extraData->leftEnd)) { echo implode("\r\n",$this->element->extraData->leftEnd); }
  ?>
</div>

<div id="hikashop_product_right_part" class="hikashop_product_right_part <?php echo HK_GRID_COL_6; ?>">
  <?php
  if(!empty($this->element->extraData->rightBegin))
    echo implode("\r\n",$this->element->extraData->rightBegin);
  ?>
  <div id="hikashop_product_vote_mini" class="hikashop_product_vote_mini">
    <?php
    $config =& hikashop_config();
    if($this->params->get('show_vote_product') == '-1'){
      $this->params->set('show_vote_product',$config->get('show_vote_product'));
    }
    if($this->params->get('show_vote_product')){
      $js = '';
      $this->params->set('vote_type','product');
      if(isset($this->element->main)){
        $product_id = $this->element->main->product_id;
      }else{
        $product_id = $this->element->product_id;
      }
      $this->params->set('vote_ref_id',$product_id);
      echo hikashop_getLayout('vote', 'mini', $this->params, $js);
    }
    ?>
  </div>
  <span id="hikashop_product_price_main" class="hikashop_product_price_main">
    <?php
    if ($this->params->get('show_price')) {
      $this->row = & $this->element;
      $this->setLayout('listing_price');
      echo $this->loadTemplate();
    }
    ?>
  </span>
  <?php
  if(!empty($this->element->extraData->rightMiddle))
    echo implode("\r\n",$this->element->extraData->rightMiddle);
  ?>
  <?php
    $this->setLayout('show_block_dimensions');
    echo $this->loadTemplate();
  ?><br />
  <?php
  if($this->params->get('characteristic_display') != 'list') {
    $this->setLayout('show_block_characteristic');
    echo $this->loadTemplate();
    ?>
    <br />
  <?php
  }

  $form = ',0';
  if (!$this->config->get('ajax_add_to_cart', 1)) {
    $form = ',\'hikashop_product_form\'';
  }
  if (hikashop_level(1) && !empty ($this->element->options)) {
  ?>
    <div id="hikashop_product_options" class="hikashop_product_options">
      <?php
      $this->setLayout('option');
      echo $this->loadTemplate();
      ?>
    </div>
    <br />
    <?php
    $form = ',\'hikashop_product_form\'';
    if ($this->config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user') {
    ?>
      <input type="hidden" name="popup" value="1"/>
    <?php
    }
  }
  if (!$this->params->get('catalogue') && ($this->config->get('display_add_to_cart_for_free_products') || ($this->config->get('display_add_to_wishlist_for_free_products', 1) && hikashop_level(1) && $this->params->get('add_to_wishlist') && $config->get('enable_wishlist', 1)) || !empty($this->element->prices))) {
    if (!empty ($this->itemFields)) {
      $form = ',\'hikashop_product_form\'';
      if ($this->config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user') {
      ?>
        <input type="hidden" name="popup" value="1"/>
      <?php
      }
      $this->setLayout('show_block_custom_item');
      echo $this->loadTemplate();
    }
  }
  $this->formName = $form;
  if($this->params->get('show_price')){ ?>
    <span id="hikashop_product_price_with_options_main" class="hikashop_product_price_with_options_main">
    </span>
  <?php }
  if(empty ($this->element->characteristics) || $this->params->get('characteristic_display')!='list'){ ?>
    <div id="hikashop_product_quantity_main" class="hikashop_product_quantity_main">
      <?php
      $this->row = & $this->element;
      $this->ajax = 'if(hikashopCheckChangeForm(\'item\',\'hikashop_product_form\')){ return hikashopModifyQuantity(\'' . $this->row->product_id . '\',field,1' . $form . ',\'cart\'); } else { return false; }';
      $this->setLayout('quantity');
      echo $this->loadTemplate();
      ?>
    </div>
  <?php } ?>
 <?php if(hikashop_loadUser() != null){ ?>
  <div id="hikashop_product_contact_main" class="hikashop_product_contact_main">
    <?php
    $contact = $this->config->get('product_contact',0);
    if (hikashop_level(1) && ($contact == 2 || ($contact == 1 && !empty ($this->element->product_contact)))) {
      $empty = '';
      $params = new HikaParameter($empty);
      global $Itemid;
      $url_itemid='';
      if(!empty($Itemid)){
        $url_itemid='&Itemid='.$Itemid;
      }
      echo $this->cart->displayButton(JText :: _('CONTACT_US_FOR_INFO'), 'contact_us', $params, hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid), 'window.location=\'' . hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid) . '\';return false;');
    }
    ?>
  </div>
<?php } ?>
  <?php
  if(!empty($this->fields)){
    $this->setLayout('show_block_custom_main');
    echo $this->loadTemplate();
  }

  if(HIKASHOP_J30) {
    $this->setLayout('show_block_tags');
    echo $this->loadTemplate();
  }

  ?>
  <span id="hikashop_product_id_main" class="hikashop_product_id_main">
    <input type="hidden" name="product_id" value="<?php echo $this->element->product_id; ?>" />
  </span>
  <?php
  if(!empty($this->element->extraData->rightEnd))
    echo implode("\r\n",$this->element->extraData->rightEnd);
  ?>
</div>
<?php if(HIKASHOP_RESPONSIVE){ ?>
  </div>
<?php } ?>
<div id="hikashop_product_bottom_part" class="hikashop_product_bottom_part">
  <?php
  if(!empty($this->element->extraData->bottomBegin))
    echo implode("\r\n",$this->element->extraData->bottomBegin);
  ?>
  <div id="hikashop_product_description_main" class="hikashop_product_description_main">
    <?php
    echo JHTML::_('content.prepare',preg_replace('#<hr *id="system-readmore" */>#i','',$this->element->product_description));
    ?>
  </div>
  <span id="hikashop_product_url_main" class="hikashop_product_url_main">
    <?php
    if (!empty ($this->element->product_url)) {
      echo JText :: sprintf('MANUFACTURER_URL', '<a href="' . $this->element->product_url . '" target="_blank">' . $this->element->product_url . '</a>');
    }
    ?>
  </span>
  <?php
  $this->setLayout('show_block_product_files');
  echo $this->loadTemplate();
  ?>
  <?php
  if(!empty($this->element->extraData->bottomMiddle))
    echo implode("\r\n",$this->element->extraData->bottomMiddle);
  ?>
  <?php
  if(!empty($this->element->extraData->bottomEnd))
    echo implode("\r\n",$this->element->extraData->bottomEnd);
  ?>
</div>

Please Log in or Create an account to join the conversation.

  • Posts: 81539
  • Thank you received: 13069
  • MODERATOR
7 years 6 months ago #251297

Hi,

The code looks correct.
If you still have the problem, please provide a link to the product page.

Please Log in or Create an account to join the conversation.

Time to create page: 0.082 seconds
Powered by Kunena Forum