Cómo anular function getAllowProducts()
a partir Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.php
de 2 Magento.
Quiero anular la función anterior pero no obtener cambios de función y nada muestra ningún problema. No se muestra ningún error dentro del archivo de registro.
compartiré mi código aquí,
registration.php
archivo,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
carpeta etc.
module.xml
el código es
<?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>
Tengo anular bloque dentro del
di.xml
código es
<?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>
Bloquear carpeta,
Outstock.php
archivo,
<?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();
}
}
No he mostrado ningún error, no se ha generado ningún registro para este archivo y el módulo está activado. setup_module
Se generan entradas internas .
Cualquier sugerencia para anular la función del configurable.php
archivo.
Gracias.
Para la versión Magento2.1 necesita anular
Magento\Swatches\Block\Product\Renderer\Configurable
1) Crear
di.xml
archivo en la carpetaNamespace\Module\etc
2) Crear
Outstock.php
archivo de bloque en la carpetaNamespace\Module\Block
fuente
Necesitas anular
en lugar de anular
archivo.
fuente
Para anular la función del archivo configurable.php.
1) Primero cree el archivo di.xml en Prueba de carpeta / Configuración / etc.
2) Ahora crea el archivo Outstock.php Block en Folder Test \ Configuration \ Block
fuente