Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Получить переменную с сумой в корзине в фаил product.tpl и id главной категории этого товара


Recommended Posts

Собственно вопрос в теме.

 

Нужно не выводить кнопку купить в продуктах одной из категорий если сумма покупок меньше заданой

Edited by cherkas
Link to post
Share on other sites

Мой модуль "Персонализованные шаблоны" для того чтобы была возможность назначать отдельный шаблон для категорий. Далее делаем копию шаблона category.tpl называем ее category_add_to_cart_off.tpl. В нее добавляем примерно такой алгоритм:

$cart_total = $this->cart->getTotal(); //это не точно. Описание класса cart вот здесь http://halfhope.ru/2014/05/30/%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%B4-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2-opencart-1/

if($cartTotal >= 3000){
   //Показать
}
Link to post
Share on other sites

Этим модулем я могу спрятать кнопку купить в категории, это хорошая подсказка, Вам + (не могу поставить только). Но этот модуль не решает мою проблему, я спрашивал про product.tpl

Link to post
Share on other sites

Пробовал вставить Ваш код в product.php в контроллере и в product.tpl соответственно, но не заработало, ошибка вывода переменной $cartTotal

Link to post
Share on other sites

Для показа содержимого переменных используйте var_dump($varname);

Edited by halfhope
Link to post
Share on other sites

экспериментальным методом пока получил переменную, но только с руб. в конце
 

public function index() { 
	

				$this->language->load('module/cart');

	

		// Totals
		$this->load->model('setting/extension');

		$total_data = array();					
		$total = 0;
		$taxes = $this->cart->getTaxes();

		// Display prices
		if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
			$sort_order = array(); 

			$results = $this->model_setting_extension->getExtensions('total');

			foreach ($results as $key => $value) {
				$sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
			}

			array_multisort($sort_order, SORT_ASC, $results);

			foreach ($results as $result) {
				if ($this->config->get($result['code'] . '_status')) {
					$this->load->model('total/' . $result['code']);

					$this->{'model_total_' . $result['code']}->getTotal($total_data, $total, $taxes);
				}

				$sort_order = array(); 

				foreach ($total_data as $key => $value) {
					$sort_order[$key] = $value['sort_order'];
				}

				array_multisort($sort_order, SORT_ASC, $total_data);			
			}		
		}

		$this->data['totals'] = $total_data;

		$this->data['heading_title'] = $this->language->get('heading_title');

		$this->data['text_items'] = sprintf($this->currency->format($total));

...

 
 
тут наверняка есть лишнее

а в tpl следуюший код
 

$totalcart = explode(' ', $text_items, 2);

<?php echo $totalcart[0]; ?>

криво конечно, но по другому у меня не получается.

 

Я не очень хорошо знаю php по этому, честно даже понятия не имею куда вписать var_dump($varname);

Edited by cherkas
Link to post
Share on other sites

Какая версия?

Link to post
Share on other sites

OCSHOP Версия 1.5.6.4.1

 

кусок указанного кода контроллера взял из модуля корзины

Edited by cherkas
Link to post
Share on other sites

У меня $this->cart->getTotal(); выводит float 1427.9528, что правильно, без руб.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.