Comment remplacer function getAllowProducts()
depuis Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.php
dans magento 2.
Je veux remplacer la fonction ci-dessus mais ne pas obtenir de changements de fonction et rien n'afficher de problème. Il n'y a aucun affichage d'erreur dans le fichier journal.
je vais partager mon code ici,
registration.php
fichier,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
dossier etc,
module.xml
le code est,
<?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>
j'ai remplacer le bloc à l'intérieur du
di.xml
code est
<?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>
Bloquer le dossier, le
Outstock.php
fichier,
<?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();
}
}
Je n'ai aucun affichage d'erreur, aucun journal n'est généré pour ce fichier et le module est activé. une setup_module
entrée interne est générée.
Toute suggestion pour remplacer la fonction du configurable.php
fichier.
Merci.
Pour la version Magento2.1, vous devez remplacer
Magento\Swatches\Block\Product\Renderer\Configurable
1) Créer un
di.xml
fichier dans un dossierNamespace\Module\etc
2) Créer un
Outstock.php
fichier de blocage dans un dossierNamespace\Module\Block
la source
Vous devez remplacer
au lieu de remplacer
fichier.
la source
Pour remplacer la fonction du fichier configurable.php.
1) Créez d'abord le fichier di.xml dans Folder Test / Configuration / etc
2) Créez maintenant le fichier Block Outstock.php dans Folder Test \ Configuration \ Block
la source