I want need to show New label on new product in product list page.
Help me for the achieve this task.
How can it will Show in magento2 ?
I want need to show New label on new product in product list page.
Help me for the achieve this task.
How can it will Show in magento2 ?
Propably the best option is to add new helper with following code:
<?php
namespace Vendor\Module\Helper;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Catalog\Model\Product as ModelProduct;
use Magento\Store\Model\Store;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
class HelperName extends \Magento\Framework\Url\Helper\Data
{
/**
* @var TimezoneInterface
*/
protected $localeDate;
public function __construct(
\Magento\Framework\App\Helper\Context $context,
TimezoneInterface $localeDate
) {
$this->localeDate = $localeDate;
parent::__construct($context);
}
public function isProductNew(ModelProduct $product)
{
$newsFromDate = $product->getNewsFromDate();
$newsToDate = $product->getNewsToDate();
if (!$newsFromDate && !$newsToDate) {
return false;
}
return $this->localeDate->isScopeDateInInterval(
$product->getStore(),
$newsFromDate,
$newsToDate
);
}
}
Then in .phtml file use this:
$helper = $this->helper('Vendor\Module\Helper\HelperName');
and in products foreach
:
<?php if($helper->isProductNew($_product)): ?>
Your label code here
<?php endif; ?>
\Magento\Framework\Url\Helper\Data
instead of \Magento\Framework\App\Helper\AbstractHelper
?
Feb 7, 2018 at 16:21
Create helper and add code.
<?php
namespace Vendor\Module\Helper;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
class Newlabel extends \Magento\Framework\Url\Helper\Data
{
/**
* @var TimezoneInterface
*/
protected $localeDate;
public function __construct(
TimezoneInterface $localeDate
) {
$this->localeDate = $localeDate;
}
public function isProductNew($product)
{
$newsFromDate = $product->getNewsFromDate();
$newsToDate = $product->getNewsToDate();
if (!$newsFromDate && !$newsToDate) {
return false;
}
return $this->localeDate->isScopeDateInInterval(
$product->getStore(),
$newsFromDate,
$newsToDate
);
}
}
Add below code to list.phtml file (in foreach)
<?php $helper = $this->helper('Vendor\Module\Helper\Newlabel'); ?>
<?php if($helper->isProductNew($_product)): ?>
<div class="new-lable">
<?php echo __('New'); ?>
</div>
<?php endif; ?>
And finally it will show NEW label in product list page. Working Great.