Cách ghi đè function getAllowProducts()
từ Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.php
trong magento 2.
Tôi muốn ghi đè chức năng trên nhưng không nhận được thay đổi chức năng và không có gì hiển thị bất kỳ vấn đề nào. Không có bất kỳ lỗi hiển thị bên trong tệp nhật ký.
tôi sẽ chia sẻ mã của tôi ở đây,
registration.php
tập tin,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
thư mục vv
module.xml
mã là,
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Test_Configuration" setup_version="1.0.0"/>
</config>
tôi có khối ghi đè bên trong
di.xml
mã là
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\ConfigurableProduct\Block\Product\View\Type\Configurable" type="Test\Configuration\Block\Outstock" />
</config>
Chặn thư mục,
Outstock.php
tập tin,
<?php
namespace Test\Configuration\Block;
class Outstock extends \Magento\ConfigurableProduct\Block\Product\View\Type\Configurable
{
public function getAllowProducts()
{
if (!$this->hasAllowProducts()) {
$products = [];
$skipSaleableCheck = $this->catalogProduct->getSkipSaleableCheck();
$allProducts = $this->getProduct()->getTypeInstance()->getUsedProducts($this->getProduct(), null);
foreach ($allProducts as $product) {
$products[] = $product;
}
$this->setAllowProducts($products);
}
return $this->getData('allow_products');
}
protected function _toHtml()
{
$this->setModuleName($this->extractModuleName('Magento\ConfigurableProduct\Block\Product\View\Type\Configurable'));
return parent::_toHtml();
}
}
Tôi không hiển thị bất kỳ lỗi nào, không phải bất kỳ bản ghi nhật ký nào cho tệp này và mô-đun được kích hoạt. setup_module
mục bên trong được tạo ra.
Bất kỳ đề nghị cho chức năng ghi đè của configurable.php
tập tin.
Cảm ơn.