Из быстрого поиска единственная ссылка, которую я нашел, была на форумах Magento, которая предлагает вам написать собственный код, чтобы проверить, является ли продукт новым.
Я бы подумал, что будет простой isNew()
метод, Mage_Catalog_Model_Product
который учитывает раскрывающийся список « Рекомендуемые», а также поля « Установить продукт как новый с даты» и « Установить продукт как новый с датой» - но это не так?
Нужны ли пользовательские кодеки?
isObjectNew()
но я понимаю, что вы говорите.Ответы:
Вы абсолютно НЕ должны конвертировать и проверять даты вручную, потому что это может вызвать проблемы с часовым поясом. Magento имеет встроенный метод
isStoreDateInInterval()
вMage_Core_Model_Locale
классе. Таким образом, вы должны создать вспомогательный метод, который может выглядеть следующим образомБолее подробную информацию вы можете найти здесь http://quicktips.ru/all/check-product-is-new/
источник
Там нет ни одного вызова метода. По крайней мере, я не знаю об этом.
Тем не менее, вы всегда можете использовать что-то вроде этого:
Извините, я не очень хорош в сравнении дат в PHP.
Хороший вопрос, кстати.
источник
Для справки вот вспомогательный метод, который я придумал для проверки новизны. Он поддерживает как выпадающий список, так и даты, а также поддерживает либо пустую дату.
ОБНОВЛЕНИЕ: Спасибо @Rooooomine за упоминание о том, что это ручное преобразование даты, которое я предложил, является очень плохой идеей из-за потенциальных языковых проблем. Проверьте
Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
вместо этого.источник
Точность, которая может быть полезна для кого-то. Все эти ответы используют атрибут "news_from_date", но если вы хотите получить фактическую дату создания продукта в базе данных, вы должны получить атрибут "creation_at", используя метод:
В проекте, над которым я работаю, некоторые продукты могут иметь значение «news_from_date», отличное от «made_at». Действительно, в соответствии с бизнес-правилами, продукт может отсутствовать на складе в течение длительного времени, а затем возвращаться в качестве новых продуктов, когда он возвращается в каталог.
источник
Быстрое решение
источник
Вы можете попробовать ниже код
Где
$this
находится объект,Mage_Catalog_Model_Product
и вам нужно загрузить продукт, если он еще не загружен.источник