Как переопределить function getAllowProducts()
из Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.php
в magento 2.
Я хочу переопределить вышеуказанную функцию, но не получаю изменения функции и ничего не отображает никаких проблем. Там нет никаких ошибок отображения внутри файла журнала.
я поделюсь своим кодом здесь,
registration.php
файл,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
и т.д. папка,
module.xml
код есть,
<?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>
у меня есть блок переопределения внутри
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">
<preference for="Magento\ConfigurableProduct\Block\Product\View\Type\Configurable" type="Test\Configuration\Block\Outstock" />
</config>
Заблокировать папку,
Outstock.php
файл,
<?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();
}
}
У меня нет никаких сообщений об ошибках, не генерируется журнал для этого файла, и модуль активирован. внутри setup_module
записи генерируются.
Любое предложение для переопределения функции configurable.php
файла.
Спасибо.
Для версии Magento2.1 вам необходимо переопределить
Magento\Swatches\Block\Product\Renderer\Configurable
1) Создать
di.xml
файл в папкеNamespace\Module\etc
2) Создать
Outstock.php
файл блокировки в папкеNamespace\Module\Block
источник
Вы должны переопределить
вместо переопределения
файл.
источник
Переопределить функцию файла configurable.php.
1) Сначала создайте файл di.xml в Папке Test / Configuration / etc
2) Теперь создайте файл блока Outstock.php в папке \ Test \ Configuration \ Block
источник