当我在Magento2中打开产品详细信息页面(例如捆绑产品)时,1手风琴始终打开,在这种情况下是其中一个捆绑项目。即使我关闭它并保存产品,它也会在重新加载后再次打开。由于我经常需要更改此手风琴下方的产品详细信息。默认情况下关闭它会很棒。到目前为止,我找不到在代码中覆盖此设置的正确位置。
非常感谢任何帮助。
由于 乔纳斯
答案 0 :(得分:0)
您可以尝试覆盖(如下所述)该类 Magento \ Bundle \ Ui \ DataProvider \ Product \ Form \ Modifier \ BundlePane 。
我假设您将创建一个自定义模块名称“ Vendor_Module ”来执行此自定义任务
步骤1)在
下创建 di.xml/ app / code / Vendor / Module / etc / adminhtml /
文件: 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\Bundle\Ui\DataProvider\Product\Form\Modifier\BundlePanel"
type="Vendor\Module\Ui\DataProvider\Product\Form\Modifier\BundlePanel" />
</config>
步骤2:在
下创建 BundlePanel.php/ app / code / Vendor / Module / Ui / DataProvider / Product / Form / Modifier /
文件: BundlePanel.php
<?php
namespace Vendor\Module\Ui\DataProvider\Product\Form\Modifier;
class BundlePanel extends \Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\BundlePanel
{
/**
* {@inheritdoc}
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function modifyMeta(array $meta)
{
$meta = parent::modifyMeta($meta);
$path = $this->arrayManager->findPath(static::CODE_BUNDLE_DATA, $meta, null, 'children');
$meta = $this->arrayManager->merge(
$path,
$meta,
[
'arguments' => [
'data' => [
'config' => [
'dataScope' => '',
'opened' => false,
'sortOrder' => $this->getNextGroupSortOrder(
$meta,
static::GROUP_CONTENT,
static::SORT_ORDER
)
],
],
],
]
);
return $meta;
}
}
步骤3:运行di commnad
sudo php bin / magento设置:di:compile
步骤4:清理Magento缓存
================================================ =========
请注意:
要显示/隐藏“捆绑商品”选项卡,请将 $ meta 阵列键“ 已打开”的值更改为 true / false 在覆盖类文件 Vendor \ Module \ Ui \ DataProvider \ Product \ Form \ Modifier \ BundlePanel.php 中,如下所示:
'已打开'=> 假,
================================================ =========