magento 2 如何获取最近浏览的产品集合

显示最近浏览过的产品在Magento商店的成功中发挥了重要作用,因为它允许客户密切关注他们最近访问过的所有产品,这将有助于增强客户的购物体验。

要在网站上显示最近查看的产品集合,商店管理员将需要有关最近查看的产品集合的数据。然而,获取集合并不是一项简单的任务,虽然有几篇文章为此解释了解决方案,但实际上并没有这些文章有效。因此,在今天的帖子中,我将为您提供三个步骤,以获取 Magento 2中的最近浏览产品集

如何获得最近浏览的产品集合

  • 第1步:创建RecentProducts块
  • 第2步:在phtml文件中插入
  • 第3步:刷新缓存和测试结果

第1步:创建RecentProducts块

要获取最近查看的产品集合,首先需要创建一个RecentProducts块。为此,请按照路径Mageplaza/Productslider/Block/RecentProducts.php添加以下代码:

<?php
/**
 * Mageplaza
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Mageplaza.com license that is
 * available through the world-wide-web at this URL:
 * https://www.mageplaza.com/LICENSE.txt
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade this extension to newer
 * version in the future.
 *
 * @category    Mageplaza
 * @package     Mageplaza_Productslider
 * @copyright   Copyright (c) Mageplaza (https://www.mageplaza.com/)
 * @license     https://www.mageplaza.com/LICENSE.txt
 */
namespace Mageplaza\Productslider\Block;
use Magento\Catalog\Block\Product\Context;
use Magento\Catalog\Model\Product\Visibility;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
use Magento\Framework\App\Http\Context as HttpContext;
use Magento\Framework\Stdlib\DateTime\DateTime;
use Magento\Reports\Block\Product\Viewed as ReportProductViewed;
use Mageplaza\Productslider\Helper\Data;
/**
 * Class RecentProducts
 * @package Mageplaza\Productslider\Block
 */
class RecentProducts extends AbstractSlider
{
    /**
     * @var ReportProductViewed
     */
    protected $reportProductViewed;
    /**
     * RecentProducts constructor.
     * @param Context $context
     * @param CollectionFactory $productCollectionFactory
     * @param Visibility $catalogProductVisibility
     * @param DateTime $dateTime
     * @param Data $helperData
     * @param HttpContext $httpContext
     * @param ReportProductViewed $reportProductViewed
     * @param array $data
     */
    public function __construct(
        Context $context,
        CollectionFactory $productCollectionFactory,
        Visibility $catalogProductVisibility,
        DateTime $dateTime,
        Data $helperData,
        HttpContext $httpContext,
        ReportProductViewed $reportProductViewed,
        array $data = []
    ) {
        $this->reportProductViewed = $reportProductViewed;
        parent::__construct($context, $productCollectionFactory, $catalogProductVisibility, $dateTime, $helperData, $httpContext, $data);
    }
    /**
     * Get Collection Recently Viewed product
     * @return mixed
     */
    public function getProductCollection()
    {
        return $this->reportProductViewed->getItemsCollection()->setPageSize($this->getProductsCount());
    }
}

第2步:在phtml文件中插入

在块中进行收集后,现在您可以按照此片段从块中获取产品集合 Mageplaza/HelloWorld/view/frontend/templates/list.phtml

然后,请在phtml文件中插入以下代码。

<?php
$collection = $block->getProductCollection();
foreach ($collection as $_product) {
    echo $product->getName() . ' - ' . $product->getProductUrl() . '<br />';
}

第3步:刷新缓存和测试结果

最后,让我们刷新缓存和测试结果。

结论

以上是帮助您在Magento 2中获取最近观看收藏的三个步骤。我希望在阅读本文后,您将能够轻松地显示您的收藏。如果您有任何问题或想法,请随时在下面发表评论

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论