2016-11-10 89 views
1

我是magento2新产品。我正在使用Magento ver。 2.1.1按价格从低到高从高到低从高到低magento2

我想在产品列表页面的排序方式下拉列表中添加自定义price low to highprice high to low

我没有得到toolbar.phtml页面。此外,我没有得到任何关于谷歌的东西。

如果有人有任何想法,那么请帮助我。 谢谢!

+0

请人连锁行业我有任何想法,因为它的迫切需要做到这一点 – kingp

回答

-1

步骤1:

应用程序/代码/供应商/模块创建的插件的/ etc/di.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> 

    <type name="Magento\Catalog\Block\Product\ProductList\Toolbar"> 
     <plugin name="custom_custom_block_toolbar" type="Vendor\Module\Plugin\Catalog\Block\Toolbar" /> 
    </type> 

    <type name="Magento\Catalog\Model\Config"> 
     <plugin name="custom_catalog_model_config" type="Vendor\Module\Plugin\Catalog\Model\Config" /> 
    </type> 

</config> 

步骤2:创建CONFIG.PHP in

应用程序/代码/供应商/模块/插件/目录/型号/ CONFIG.PHP

<?php 

namespace Vendor\Module\Plugin\Catalog\Model; 

class Config 
{ 
    public function afterGetAttributeUsedForSortByArray(
    \Magento\Catalog\Model\Config $catalogConfig, 
    $options 
    ) { 

     $options['low_to_high'] = __('Price - Low To High'); 
     $options['high_to_low'] = __('Price - High To Low'); 
     return $options; 

    } 

} 

步骤3:

应用程序/代码/供应商创建Toolbar.php /Module/Plugin/Catalog/Block/Toolbar.php

<?php 
namespace Vendor\Module\Plugin\Catalog\Block; 

class Toolbar 
{ 

    /** 
    * Plugin 
    * 
    * @param \Magento\Catalog\Block\Product\ProductList\Toolbar $subject 
    * @param \Closure $proceed 
    * @param \Magento\Framework\Data\Collection $collection 
    * @return \Magento\Catalog\Block\Product\ProductList\Toolbar 
    */ 
    public function aroundSetCollection(
    \Magento\Catalog\Block\Product\ProductList\Toolbar $subject, 
    \Closure $proceed, 
    $collection 
    ) { 
    $currentOrder = $subject->getCurrentOrder(); 
    $result = $proceed($collection); 

    if ($currentOrder) { 
     if ($currentOrder == 'high_to_low') { 
      $subject->getCollection()->setOrder('price', 'desc'); 
     } elseif ($currentOrder == 'low_to_high') { 
      $subject->getCollection()->setOrder('price', 'asc'); 
     } 
    } 

    return $result; 
    } 

}