Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Проценты в скидках


Recommended Posts

Нарыл такое вот решение

Вывожу в карточке товара процент скидки, отображается это дело в таком виде - 3.804347826087%

в контроллере добавил

$data['skidka'] = 100-($product_info['special']/($product_info['price']/100));

в вью добавил

- <?php echo $skidka; ?>%


как его обрезать до целых чисел?

Надіслати
Поділитися на інших сайтах


До    $data['products'][] = array(

 

$percent = ($result['price'] > 0) ?  (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0 )) . ' %' : false;

после  $data['products'][] = array(

'percent' => $percent,

тплка

$product['percent']

 

Змінено користувачем Tom
Надіслати
Поділитися на інших сайтах

22 минуты назад, Tom сказал:

До    $data['products'][] = array(

 


$percent = ($result['price'] > 0) ?  (round((($result['price'] - $result['special'])/$result['price']) * 100 ,0 )) . ' %' : false;

после  $data['products'][] = array(


'percent' => $percent,

тплка


$product['percent']

 


Спасибо. но не работает такой вариант вообще

C:\OSPanel\domains\epilator\system\storage\modification\catalog\view\theme\default\template\product\product.tpl on line 112

112линия
 

 <?echo  $product['percent']; ?>

 

Змінено користувачем andrey8501
Надіслати
Поділитися на інших сайтах


Работает

UPD сорри, не увидел, что для карточки товара, но суть та же.

Змінено користувачем Tom
Надіслати
Поділитися на інших сайтах

14 минут назад, Tom сказал:

 Notice: Undefined variable: product in C:\OSPanel\domains\epilator\system\storage\modification\catalog\view\theme\default\template\product\product.tpl on line 112

 

Screenshot_6.png

 

Opencart 2.3

 

Screenshot_7.png

Змінено користувачем andrey8501
Надіслати
Поділитися на інших сайтах


47 минут назад, andrey8501 сказал:

когда нету скидки лезут ошибки

if($result['special']){................

Надіслати
Поділитися на інших сайтах

5 часов назад, fanatic сказал:

if($result['special']){................

 

куда вставить то?

сейчас в контроллере так
 

Спойлер

	if ((float)$product_info['special']) {


				$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

				$data['discount_amount'] = $this->currency->format($this->tax->calculate(($product_info['price'] - $product_info['special']), $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);	

				$data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));



			} else {
				$data['special'] = false;
				$data['skidka'] = false;


			}


$data['products'][] = array(
					'product_id'  => $result['product_id'],

					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'skidka' 	=> $skidka,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
			}

 

 

Надіслати
Поділитися на інших сайтах


и вы не много не там вставляете в шаблоне, поищите $products, там перебор массива должен быть и станет ясно почему $product не существует в той части где вы его пытаетесь использовать. в карточке товаров $product, относится к сопутсвующим товарам

Змінено користувачем falos
Надіслати
Поділитися на інших сайтах


11 часов назад, falos сказал:

и вы не много не там вставляете в шаблоне, поищите $products, там перебор массива должен быть и станет ясно почему $product не существует в той части где вы его пытаетесь использовать. в карточке товаров $product, относится к сопутсвующим товарам

не работает оно

 

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

Спойлер

В контроллер product.php  вставил



if ((float)$product_info['special']) {


				$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);

				$data['discount_amount'] = $this->currency->format($this->tax->calculate(($product_info['price'] - $product_info['special']), $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);	

// Сюда вставил  -  $data['skidka'] = round(100-($product_info['special']/($product_info['price']/100)));



			} else {
				$data['special'] = false;
// Сюда вставил  -  $data['skidka'] = false;
//  Но false почему то не срабатывает, когда скидка включена, а лезут ошибки


			}


далее

$data['products'][] = array(
					'product_id'  => $result['product_id'],

					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
// Сюда вставил  -  'skidka' 	=> $skidka,
					'tax'         => $tax,
					'sku'         => (empty($result['sku'])) ? '' : $this->language->get('text_sku') .' '. $result['sku'],
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);
			}


в product.tpl вставил

<span>- <?php echo $skidka; ?>%</span>

 

 

сейчас это дело все работает, если включена скидка

если скидка не стоит лезут ошибки

Notice: Undefined variable: skidka in /***********/catalog/controller/product/product.php on line 478Notice

478 линия это вот это      'skidka'     => $skidka,

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.