Перейти к содержанию
Официальный форум поддержки Simpla

Чекбокс по наличию товара


Рекомендуемые сообщения

В файле шаблона в необходимом месте пишем:

<div>Только в наличии  
	    			
<input type="checkbox" name="count_only" {if $smarty.session.only_count=='1'} checked="checked"{/if} {if $smarty.session.only_count=='1'}onchange="document.location='{url only_count=2}'"{else}onchange="document.location='{url only_count=1}'"{/if}/> 
    			</div>

Файл /index.php


 

после session_start(); пишем:

 

if(isset($_REQUEST['only_count'])) 
{ 
	$_SESSION['only_count']=$_REQUEST['only_count']; 
	header("location:".$_SERVER['REDIRECT_URL']);	 
}

файл /api/Products.php


 

после

if(!empty($filter['in_stock'])) 
	$in_stock_filter = $this->db->placehold('AND (SELECT 1 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock']));

Пишем:

if((isset($_SESSION['only_count']) && $_SESSION['only_count']=='1')) 
	$in_stock_filter = $this->db->placehold('AND (SELECT 1 FROM __variants pv WHERE pv.product_id=p.id AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1)');

 

Ссылка на сообщение
Поделиться на другие сайты

Немного не понял, что значит "только в наличии"? И как будет выглядеть?

 

Товары которых "0" можно будет убирать)

Так покупатель сможет посмотреть что есть "только в наличии"

Ссылка на сообщение
Поделиться на другие сайты

А скажите зачем вообще покупателю товары не в наличии?

Ну допустим товары которые не в наличии то их привозят под заказ

Ссылка на сообщение
Поделиться на другие сайты

Спасибо за решение!

 

Интересно, а что если этот чек-бокс сделать включенным по умолчанию? Это будет вредить позициям в поисковиках по товарам не в наличии?

Ссылка на сообщение
Поделиться на другие сайты

если немного подправить то для админки по идее не должно срабатывать

 

 

if((isset($_SESSION['only_count']) && $_SESSION['only_count']=='1' && $_SESSION['admin']!='admin'))
 
Ссылка на сообщение
Поделиться на другие сайты

 

если немного подправить то для админки по идее не должно срабатывать

 

 

if((isset($_SESSION['only_count']) && $_SESSION['only_count']=='1' && $_SESSION['admin']!='admin'))
 

:) спасибо за поправку))кто то у меня это уже спрашивал)все руки не доходили)

Ссылка на сообщение
Поделиться на другие сайты

Я вот ещё ковыряю что можно было скрыть и категории в которых у всего товара остаток на складе 0. При нажатии на этот же чек бокс.

Ссылка на сообщение
Поделиться на другие сайты
  • 8 месяцев спустя...

а как вам такой вариант  для админов и недоадминов :)

 

tpl:

	{if $smarty.session.admin == 'admin'}
         <div><!-- Только в наличии ДЛЯ АДМИНОВ  -->	    			
		 <input type="checkbox" style "background:red" name="count_only2" {if $smarty.session.only_count2=='1'} checked="checked"{/if}
         {if $smarty.session.only_count2=='1'}onchange="document.location='{url only_count2=2}'"{else}onchange="document.location='{url only_count2=1}'"{/if}/><b> Только на складе АДМИН </b>
    	 </div><!-- Только в наличии  ДЛЯ АДМИНОВ (The End)  -->   
	{else}
         <div><!-- Только в наличии   -->	    			
		 <input type="checkbox" name="count_only" {if $smarty.session.only_count=='1'} checked="checked"{/if}
         {if $smarty.session.only_count=='1'}onchange="document.location='{url only_count=2}'"{else}onchange="document.location='{url only_count=1}'"{/if}/><b> Только на складе </b>
    	 </div><!-- Только в наличии  (The End)  -->   	
	{/if}

Ссылка на сообщение
Поделиться на другие сайты

php:

		if(isset($filter['in_stock']))
			$in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock']));
					//ant
 					if((isset($_SESSION['only_count']) && $_SESSION['only_count']=='1' && $_SESSION['admin']!='admin')) 
						$in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1)'); 
						
	 				if((isset($_SESSION['only_count2']) && $_SESSION['only_count2']=='1' && $_SESSION['admin']='admin' )) 
						$in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1)');				
						
						
					//ant end
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...