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

Как правильно сформировать условие для вывода стикера Новинка


Recommended Posts

Добрый день.

Может кто знает, как сделать правильно задать условие для вывода стикера Новинка на странице категории и в карточке товара.

Надо буквально сделать проверку если товар находится в промежутке к примеру 1-20 дней с даты добавления то выводить стикер, а если больше то не выводить. Или как-то так.

Спасибо.

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


У товара в базе хранится дата добавления и дата изменения
Попробуйте след решение
 

$date_today = new DateTime(); //дата сегодня
$date_product_add = new DateTime($product_info['date_added']); // дата добавления товара, вместо $product_info, иожет быть и $results  и другое
$date_diff = date_diff($date_today, $date_product_add)->days; // разница в днях

if ($date_diff >=0 && $date_diff < 20) {
  // тут нужные данные для стикера
}

 

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


@newjey смотря как получается информация о товаре. Если стандартным методом getProduct, то date_added там есть

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


Заявляем в контроллере

'date_added' => $result['date_added'],

и в нужном месте выводим

<?php $date_today = new DateTime(); //дата сегодня
$date_product_add = new DateTime($product['date_added']); // дата добавления товара, вместо $product_info, иожет быть и $results  и другое
$date_diff = date_diff($date_today, $date_product_add)->days; // разница в днях

if ($date_diff >=0 && $date_diff < 20) {
  // тут нужные данные для стикера
echo "new!";
}
?>

Работает. Спасибо.

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


В контроллере

$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('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'manufacturer' => $product_info['manufacturer'],
					'date_added' => $product_info['date_added'],
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $rating,
					'href'        => $this->url->link('product/product', 'product_id=' . $result['product_id'])
				);

В шаблоне

<?php $date_today = new DateTime(); //дата сегодня
$date_product_add = new DateTime($product['date_added']); // дата добавления товара, вместо $product_info, иожет быть и $results  и другое
$date_diff = date_diff($date_today, $date_product_add)->days; // разница в днях
?>
<?php if ($date_diff >=0 && $date_diff < 20) { ?>
  
<div class="ribbon2"><?php echo "new"; ?></div>
<?php } ?> 

Вот так делаю.

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


так это вы делаете для рекомендуемых товаров
для самого товара смотрите как добавляется, например, рейтинг товара

$data['rating'] = (int)$product_info['rating'];


 

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


Рейтинг товара нашёл, а вот как сделать не могу найти. Точнее не могу найти где формируются переменные, например название товара для самого товара.

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


зачем вам имя товара?
 

if ($product_info['meta_h1']) {
  $data['heading_title'] = $product_info['meta_h1'];
} else {
  $data['heading_title'] = $product_info['name'];
}

все, что нужно это написать
 

$data['date_added'] = $product_info['date_added'];

переменная в шаблоне будет $date_added

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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