文章列表


如何在Magento 2中获取产品可售数量?

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中获取产品可售数量的步骤:</p><p>步骤 1:在扩展中创建以下帮助程序文件</p><p>app\code\Vendor\Extension\Helper\Data.php</p><p>然后添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?php &nbsp; namespace&nbsp;Vendor\Extension\Helper; &nbsp; use&nbsp;Magento\Framework\App\Helper\AbstractHelper; use&nbsp;Magento\Framework\App\Helper\Context; use&nbsp;Magento\InventorySalesAdminUi\Model\GetSalableQuantityDataBySku; &nbsp; class&nbsp;Data&nbsp;extends&nbsp;AbstractHelper { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;$getSalableQtyDataBySku; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;$context, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetSalableQuantityDataBySku&nbsp;$getSalableQtyDataBySku &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;getSalableQtyDataBySku&nbsp;=&nbsp;$getSalableQtyDataBySku; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::__construct($context); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getSalableQtyBySku($sku) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$salable&nbsp;=&nbsp;$this-&gt;getSalableQuantityDataBySku-&gt;execute($sku); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;json_encode($salable); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>您将获得以下输出:</p><pre class="brush:bash;toolbar:false">[{&quot;stock_name&quot;:&quot;Default&nbsp;Stock&quot;,&quot;qty&quot;:100,&quot;manage_stock&quot;:true}]</pre><p>结论:</p><p>就是这样!您可以在Magento 2中轻松获取产品的可售数量。</p><p><br/></p>

升级到Magento 2.4.x后PHP致命错误“调用未定义的函数str_contains()”

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>当Magento商家尝试升级到Magento 2.4.x时,他们可能会遇到以下错误</p><p>“调用未定义的函数 Magento\Framework\Filesystem\Directory\str_contains() in &lt;...&gt;/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74”</p><p>导致此错误的原因是 PHP 8 支持 str_contains() 函数,并且 Magento 版本 2.4.3 和 2.3.7-p1 与 PHP 7.4 兼容。但是,此问题将在即将发布的 Magento 2.4.4、2.4.3-p1 和 2.3.7-p2 中修复。</p><p>升级到Magento 2.4.x后,如何修复对未定义函数str_contains()的PHP致命错误调用?</p><p>步骤1:打开终端并从Magento根文件夹运行以下命令。</p><pre class="brush:bash;toolbar:false">composer&nbsp;require&nbsp;symfony/polyfill-php80</pre><p>步骤2:然后,运行Magento安装程序升级命令以验证问题是否已解决</p><pre class="brush:bash;toolbar:false">php&nbsp;bin/magento&nbsp;setup:upgrade</pre><p>结论:</p><p>通过这样做,您可以在升级Magento 2版本后消除PHP致命错误。</p><p><br/></p>

如何将内容链接添加到Magento 2中的顶部菜单

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中将内容链接添加到顶部菜单的步骤:</p><p>步骤1:转到以下文件路径</p><p>app\code\Vendor\Extension\etc\frontend\events.xml</p><p>现在,添加代码,如下所示</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;config&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Event/etc/events.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;event&nbsp;name=&quot;page_block_html_topmenu_gethtml_before&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;observer&nbsp;name=&quot;vendor_extension_observer&quot;&nbsp;instance=&quot;Vendor\Extension\Observer\Topmenu&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/event&gt; &lt;/config&gt;</pre><p>步骤2:然后移动到以下文件位置</p><p>app\code\Vendor\Extension\Observer\Topmenu.php</p><p>添加代码,如下所述</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Observer; use&nbsp;Magento\Framework\Event\Observer&nbsp;as&nbsp;EventObserver; use&nbsp;Magento\Framework\Data\Tree\Node; use&nbsp;Magento\Framework\Event\ObserverInterface; class&nbsp;Topmenu&nbsp;implements&nbsp;ObserverInterface { &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;execute(EventObserver&nbsp;$observer) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$menu&nbsp;=&nbsp;$observer-&gt;getMenu(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tree&nbsp;=&nbsp;$menu-&gt;getTree(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;name&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;__(&#39;Menu&nbsp;item&nbsp;label&nbsp;link&#39;), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;id&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;&#39;some-unique-id-here&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;url&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;&#39;url&nbsp;goes&nbsp;here&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;is_active&#39;&nbsp;=&gt;&nbsp;‘true’ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$node&nbsp;=&nbsp;new&nbsp;Node($data,&nbsp;&#39;id&#39;,&nbsp;$tree,&nbsp;$menu); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$menu-&gt;addChild($node); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this; &nbsp;&nbsp;&nbsp;&nbsp;} } &nbsp; ?&gt;</pre><p>步骤3:最后,运行以下命令</p><p>php bin/magento cache:flush</p><p>结果:该链接将添加到Magento 2的顶部菜单中。</p><p><img src="/uploads/images/20230830/443dc1d1f75c6b74f0ef6ae6bf3aca29.png" title="a.png" alt="" width="837" height="387"/></p><p>顶部菜单</p><p>结论:</p><p>通过这种方式,您可以轻松地将自定义链接添加到万磁王 2 的顶部菜单。</p><p><br/></p>

如何在Magento 2的管理产品网格上按多个SKU进行过滤?

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中按管理产品网格上的多个SKU进行筛选的步骤:</p><p>步骤 1: 在扩展中创建 di.xml 文件</p><p>app\code\Vendor\Extension\etc\di.xml</p><p>现在,添加代码,如下所示</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;config&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:ObjectManager/etc/config.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;preference&nbsp;for=&quot;Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider&quot;&nbsp;type=&quot;Vendor\Extension\Model\ProductDataProvider&quot;&nbsp;/&gt; &lt;/config&gt;</pre><p>步骤 2:现在在以下路径中创建产品数据提供程序.php文件</p><p>app\code\Vendor\Extension\Model\ProductDataProvider.php</p><p>然后添加代码,如下所述</p><pre class="brush:bash;toolbar:false">&lt;?php &nbsp; namespace&nbsp;Vendor\Extension\Model; &nbsp; class&nbsp;ProductDataProvider&nbsp;extends&nbsp;\Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider { &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@inheritdoc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;addFilter(\Magento\Framework\Api\Filter&nbsp;$filter) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset($this-&gt;addFilterStrategies[$filter-&gt;getField()])) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;addFilterStrategies[$filter-&gt;getField()] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;addFilter( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;getCollection(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$filter-&gt;getField(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[$filter-&gt;getConditionType()&nbsp;=&gt;&nbsp;$filter-&gt;getValue()] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif&nbsp;($filter-&gt;getField()&nbsp;==&nbsp;&quot;sku&quot;&nbsp;&amp;&amp;&nbsp;count(explode(&quot;,&quot;,str_replace(&quot;%&quot;,&quot;&quot;,$filter-&gt;getValue())))&nbsp;&gt;&nbsp;1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$withComma&nbsp;=&nbsp;explode(&quot;,&quot;,str_replace(&quot;%&quot;,&quot;&quot;,$filter-&gt;getValue())); &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$attrs&nbsp;=&nbsp;array(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($withComma&nbsp;as&nbsp;$cItem) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$attrs[]&nbsp;=&nbsp;[&#39;attribute&#39;&nbsp;=&gt;&nbsp;$filter-&gt;getField(),&nbsp;$filter-&gt;getConditionType()&nbsp;=&gt;&nbsp;&#39;%&#39;.trim($cItem).&#39;%&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;getCollection()-&gt;addAttributeToFilter($attrs); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent::addFilter($filter); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>结论:</p><p>因此,通过这种方式,您可以在Magento 2的管理产品网格上过滤多个SKU。</p><p><br/></p>

如何在Magento 2中使用CSS文件为特定CMS页面应用自定义CSS

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中使用CSS文件为特定CMS页面应用自定义CSS的步骤:</p><p>第1步: 首先,我们需要在您的主题文件夹中创建一个Magento_Cms文件夹(如果不存在)。</p><p>第2步: 之后在布局文件夹中创建一个XML文件。该文件的格式应如下所示:</p><p>cms_page_view_selectable_pageidentifier_layoutname.xml</p><p>文件的路径如下:</p><p>app\design\frontend\Theme_Name\Magento_Cms\layout\cms_page_view_selectable_faqs_custom.xml</p><p>现在添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;page&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:View/Layout/etc/page_configuration.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;head&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;css&nbsp;src=&quot;Magento_Cms::css/custom_css.css&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/head&gt; &lt;/page&gt;</pre><p>步骤3:之后,我们需要在Magento_Cms目录中创建一个css文件“custom_css.css”文件,并在该文件中应用CSS</p><p>app\design\frontend\Theme_Name\Magento_Cms\web\css\</p><p>步骤4: 之后,您的自定义布局名称将显示在管理面板中。</p><p>导航到内容&gt;页面&gt;编辑特定页面&gt;设计</p><p><img src="/uploads/images/20230830/92961bf82e61254e825bb65df4769f5c.png" title="1.png" alt="" width="882" height="317"/></p><p>自定义布局</p><p>从下拉列表中选择布局名称并保存页面。</p><p>结论:</p><p>因此,现在您知道如何使用 Magento 2 中的 CSS 文件为特定 CMS 页面应用自定义 CSS</p><p><br/></p>

如何在Magento 2中以编程方式创建小部件

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中以编程方式创建小部件的步骤:</p><p>步骤1:要声明自定义小部件,请在以下路径创建小部件.xml文件</p><p>app\code\Vendor\Extensionion\etc\widget.xml</p><p>现在,添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;&nbsp;?&gt; &lt;widgets&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:extention:Magento_Widget:etc/widget.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&lt;widget&nbsp;class=&quot;Vendor\Extention\Block\Customwidget&quot;&nbsp;id=&quot;customwidget&quot;&gt; &nbsp;&lt;label&gt;Custom&nbsp;Widget&lt;/label&gt; &nbsp;&lt;description&gt;Creating&nbsp;Custom&nbsp;Widget&lt;/description&gt; &nbsp;&lt;parameters&gt; &nbsp;&lt;parameter&nbsp;name=&quot;customwidgettext&quot;&nbsp;sort_order=&quot;10&quot;&nbsp;visible=&quot;true&quot;&nbsp;xsi:type=&quot;text&quot;&gt; &nbsp;&lt;label&gt;Enter&nbsp;Custom&nbsp;text&lt;/label&gt; &nbsp;&lt;/parameter&gt; &nbsp;&lt;/parameters&gt; &nbsp;&nbsp;&nbsp;&lt;/widget&gt; &lt;/widgets&gt;</pre><p>参数允许向小部件添加不同的字段。</p><p>第2步: 现在,在块内创建一个PHP文件。转到以下路径</p><p>app\code\Vendor\Extensionion\Block\Customwidget.php</p><p>并添加代码如下</p><pre class="brush:bash;toolbar:false">&lt;?php &nbsp; namespace&nbsp;Vendor\Extention\Block; &nbsp; use&nbsp;Magento\Framework\View\Element\Template; use&nbsp;Magento\Widget\Block\BlockInterface; &nbsp; class&nbsp;Customwidget&nbsp;extends&nbsp;Template&nbsp;implements&nbsp;BlockInterface { &nbsp;protected&nbsp;$template&nbsp;=&nbsp;&quot;customwidget.phtml&quot;; }</pre><p>第三步: 现在创建一个 phtml 文件,该文件将 phtml 的数据显示在前端。导航到以下路径</p><p>app\code\Vendor\Extention\view\frontend\templates\customwidget.phtml</p><p>添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;div&gt; &nbsp;&nbsp;&nbsp;&lt;p&gt;This&nbsp;will&nbsp;show&nbsp;the&nbsp;custom&nbsp;text&nbsp;field&nbsp;data&nbsp;inside&nbsp;widget&nbsp;:&nbsp;&lt;/p&gt; &nbsp;&nbsp;&nbsp;&lt;span&gt;&lt;?php&nbsp;echo&nbsp;$block-&gt;getData(‘customwidgettext’);?&gt;&lt;/span&gt; &lt;/div&gt;</pre><p>结论:</p><p>通过这种方式,您可以在Magento 2中以编程方式创建小部件。</p><p><br/></p>

在Magento 2中:维护模式处于活动状态时如何自定义维护默认页面?

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中自定义维护默认页面的步骤:</p><p>步骤1:导航到Magento 根目录并从终端运行以下命令以在Magento中启用维护模式。</p><pre class="brush:bash;toolbar:false">php&nbsp;bin/magento&nbsp;maintenance:enable</pre><p>步骤2:启用维护模式后,如果开发人员模式设置为Magento,则主页显示为正在维护中</p><p>对于默认模式和生产模式,它显示为错误日志或报告消息。这会产生糟糕的用户体验,因此您需要自定义页面。</p><p>步骤3:现在要自定义Magento默认维护页面,请从Magento根目录打开.htaccess文件。</p><p>注意:如果您使用的是 Magento版本2.4.x,则需要从Magento的pub目录中打开.htaccess文件。</p><p>步骤4:然后,从.htaccess文件中找到此代码:“index.php”,现在将此代码修改为“maintenance.html”。</p><p>第 5 步: 在 Magento 根目录上创建一个维护.html文件。</p><p>注意:如果您使用的是Magento 版本2.4.x,则需要在Magento的pub目录下创建一个maintenance.html文件。</p><p>现在添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;!doctype&nbsp;html&gt; &lt;html&gt; &nbsp;&nbsp;&lt;head&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Site&nbsp;Maintenance&lt;/title&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;charset=&quot;utf-8&quot;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;name=&quot;robots&quot;&nbsp;content=&quot;noindex&quot;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;name=&quot;viewport&quot;&nbsp;content=&quot;width=device-width,&nbsp;initial-scale=1.0&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;style&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body&nbsp;{&nbsp;text-align:&nbsp;center;&nbsp;padding:&nbsp;20px;&nbsp;font:&nbsp;20px&nbsp;Helvetica,&nbsp;sans-serif;&nbsp;color:&nbsp;#333;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@media&nbsp;(min-width:&nbsp;768px){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body{&nbsp;padding-top:&nbsp;150px;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h1&nbsp;{&nbsp;font-size:&nbsp;50px;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;article&nbsp;{&nbsp;display:&nbsp;block;&nbsp;text-align:&nbsp;left;&nbsp;max-width:&nbsp;650px;&nbsp;margin:&nbsp;0&nbsp;auto;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;{&nbsp;color:&nbsp;#dc8100;&nbsp;text-decoration:&nbsp;none;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a:hover&nbsp;{&nbsp;color:&nbsp;#333;&nbsp;text-decoration:&nbsp;none;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&lt;/style&gt; &nbsp;&nbsp;&lt;/head&gt; &nbsp;&nbsp;&lt;body&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;article&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;We&amp;rsquo;ll&nbsp;be&nbsp;back&nbsp;soon!&lt;/h1&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Sorry&nbsp;for&nbsp;the&nbsp;inconvenience&nbsp;but&nbsp;we&amp;rsquo;re&nbsp;performing&nbsp;some&nbsp;maintenance&nbsp;at&nbsp;the&nbsp;moment.&nbsp;If&nbsp;you&nbsp;need&nbsp;to&nbsp;you&nbsp;can&nbsp;always&nbsp;contact&nbsp;us,&nbsp;otherwise&nbsp;we&amp;rsquo;ll&nbsp;be&nbsp;back&nbsp;online&nbsp;shortly!&lt;/p&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;&amp;mdash;&nbsp;The&nbsp;Team&lt;/p&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/article&gt; &nbsp;&nbsp;&lt;/body&gt; &lt;/html&gt;</pre><p>您可以根据需要修改上述代码。</p><p>步骤6:现在打开Magento 主页,您的Magento默认维护页面已更改</p><p>结论:</p><p>因此,通过这种方式,您可以更改Magento 2商店维护页面的默认消息。</p><p><br/></p>

如何在重新索引Magento 2时修复无效的列数据类型

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在重新索引Magento 2时修复无效列数据类型的步骤:</p><p>步骤1:转到以下路径</p><p>vendor/magento/module-eav/model/resourceModel/Helper.php</p><p>将以下行插入 getDdlTypeByColumnType() 函数</p><p></p><pre class="brush:bash;toolbar:false">&nbsp;&nbsp;&nbsp;case&nbsp;&#39;int&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;int&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;smallint&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;smallint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;bigint&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;bigint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</pre><p>所以之前的getDdlTypeByColumnType()函数看起来像这样</p><pre class="brush:bash;toolbar:false">public&nbsp;function&nbsp;getDdlTypeByColumnType($columnType) { &nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;($columnType) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;char&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;varchar&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;text&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;tinyint&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;smallint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;array_search($columnType,&nbsp;$this-&gt;_ddlColumnTypes); }</pre><p>现在getDdlTypeByColumnType()函数已更改如下</p><pre class="brush:bash;toolbar:false">public&nbsp;function&nbsp;getDdlTypeByColumnType($columnType) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;($columnType) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;int&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;int&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;smallint&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;smallint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;bigint&nbsp;unsigned&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;bigint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;char&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;varchar&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;text&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&#39;tinyint&#39;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$columnType&nbsp;=&nbsp;&#39;smallint&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;array_search($columnType,&nbsp;$this-&gt;_ddlColumnTypes); }</pre><p>结论:</p><p>因此,这样您就可以在Magento 2中重新索引时摆脱无效的列数据类型。此外,如果您遇到诸如“索引被另一个重新索引进程锁定”之类的错误。</p><p><br/></p>

如何在Magento 2的目录价格规则表单中添加自定义字段?

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2的目录价格规则表单中添加自定义字段的步骤:</p><p>步骤 1:在目录规则表中添加自定义字段db_schema.xml。导航到以下路径</p><p>app/code/Vendor/Extension/etc/db_schema.xml</p><p>现在,添加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;schema&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;name=&quot;catalogrule&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;column&nbsp;xsi:type=&quot;varchar&quot;&nbsp;name=&quot;custom_field&quot;&nbsp;nullable=&quot;false&quot;&nbsp;length=&quot;255&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comment=&quot;Custom&nbsp;Field&nbsp;Catalog&nbsp;Price&nbsp;Rule&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&lt;/table&gt; &lt;/schema&gt;</pre><p>第 2 步: 在ui_component中创建catalog_rule_form.xml文件。转到以下路径</p><p>app/code/Vendor/Extension/view/adminhtml/ui_component/catalog_rule_form.xml</p><p>然后,按如下方式添加代码</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;&nbsp;encoding=&quot;UTF-8&quot;?&gt; &lt;form&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Ui:etc/ui_configuration.xsd&quot;&gt; &lt;fieldset&nbsp;name=&quot;rule_information&quot;&nbsp;sortOrder=&quot;10&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;field&nbsp;name=&quot;custom_field&quot;&nbsp;formElement=&quot;input&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;argument&nbsp;name=&quot;data&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;config&quot;&nbsp;xsi:type=&quot;array&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item&nbsp;name=&quot;source&quot;&nbsp;xsi:type=&quot;string&quot;&gt;sales_rule&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/item&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/argument&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;settings&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;validation&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rule&nbsp;name=&quot;required-entry&quot;&nbsp;xsi:type=&quot;boolean&quot;&gt;false&lt;/rule&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/validation&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dataType&gt;text&lt;/dataType&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&nbsp;translate=&quot;true&quot;&gt;Custom&nbsp;Field&lt;/label&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;visible&gt;true&lt;/visible&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dataScope&gt;custom_field&lt;/dataScope&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/settings&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/field&gt; &lt;/fieldset&gt; &lt;/form&gt;</pre><p>结论:</p><p>因此,通过这种方式,您可以将任何自定义字段添加到Magento 2中的目录价格规则窗体中。</p><p><br/></p>

如何在Magento 2中使用观察器从任何页面中删除块

<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发 》</a></h5> <div class="image-container"> <p> <a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank"> <img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发"> </a> </p> </div> <div class="text-container" style="font-size:14px; color:#888"> <p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p> </div> <hr><p>在Magento 2中使用观察器从任何页面中删除块的步骤</p><p>第 1 步:我们需要 在扩展中以以下路径创建一个“events.xml”文件</p><p>app\code\Vendor\Extension\etc\</p><p>然后添加代码,如下所示</p><pre class="brush:bash;toolbar:false">&lt;?xml&nbsp;version=&quot;1.0&quot;?&gt; &lt;config&nbsp;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&nbsp;xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Event/etc/events.xsd&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;event&nbsp;name=&quot;layout_generate_blocks_after&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;observer&nbsp;name=&quot;removeblock&quot;&nbsp;instance=&quot;Vendor\Extension\Observer\Removeblock&quot;&nbsp;shared=&quot;false&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/event&gt; &lt;/config&gt;</pre><p>第2步: 之后,我们需要在扩展名中在以下路径中创建一个“Removeblock.php”文件。</p><p>app\code\Vendor\Extension\Observer\</p><p>现在,附加以下代码</p><pre class="brush:bash;toolbar:false">&lt;?php namespace&nbsp;Vendor\Extension\Observer; &nbsp; use&nbsp;Magento\Framework\Event\Observer; use&nbsp;Magento\Framework\Event\ObserverInterface; &nbsp; class&nbsp;Removeblock&nbsp;implements&nbsp;\Magento\Framework\Event\ObserverInterface { &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;execute(\Magento\Framework\Event\Observer&nbsp;$observer) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$layout&nbsp;=&nbsp;$observer-&gt;getLayout(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$your_condition&nbsp;=&nbsp;1;&nbsp;//&nbsp;write&nbsp;your&nbsp;conditional&nbsp;logic&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($your_condition&nbsp;==&nbsp;1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;you&nbsp;need&nbsp;to&nbsp;modifed&nbsp;block&nbsp;name&nbsp;as&nbsp;per&nbsp;your&nbsp;requirement. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$layout-&gt;unsetElement(&#39;customer-account-navigation-orders-link&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>结论:</p><p>通过这种方式,您可以使用Magento 2中的观察器轻松地从任何页面中删除块。</p><p><br/></p>