Cara mengganti function getAllowProducts()
dari Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.php
di magento 2.
Saya ingin mengganti fungsi di atas tetapi tidak mendapatkan perubahan fungsi dan tidak ada yang menampilkan masalah apa pun. Tidak ada tampilan kesalahan di dalam file log.
saya akan membagikan kode saya di sini,
registration.php
mengajukan,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
folder dll,
module.xml
kode adalah,
<?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>
Saya telah menimpa blok di dalam
di.xml
kode
<?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>
Blokir folder,
Outstock.php
file,
<?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();
}
}
i havent setiap tampilan kesalahan tidak menghasilkan log untuk file dan modul ini diaktifkan. setup_module
entri dalam dihasilkan.
Setiap saran untuk mengganti fungsi configurable.php
file.
Terima kasih.
Untuk versi Magento2.1 Anda harus mengganti
Magento\Swatches\Block\Product\Renderer\Configurable
1) Buat
di.xml
file di FolderNamespace\Module\etc
2) Buat
Outstock.php
Blokir file di FolderNamespace\Module\Block
sumber
Anda harus mengganti
bukannya mengesampingkan
mengajukan.
sumber
Untuk mengganti fungsi file configurable.php.
1) Pertama-tama buat file di.xml di Tes Folder / Konfigurasi / dll
2) Sekarang buat file Blok Outstock.php di Tes Folder \ Konfigurasi \ Blok
sumber