Как добавить новый виджет или функциональность на страницы товаров в Magento 2?

Пользователь

от jeremy_larkin , в категории: PHP , год назад

Как добавить новый виджет или функциональность на страницы товаров в Magento 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от chloe.keebler , год назад

@jeremy_larkin 

Чтобы добавить новый виджет или функциональность на страницы товаров в Magento 2, вам понадобится выполнить следующие шаги:

  1. Создайте свой модуль Magento. Создайте папку с именем вашего модуля в каталоге app/code.
  2. Создайте файл module.xml в папке вашего модуля и определите его структуру следующим образом:
1
2
3
4

    


  1. Создайте файл registration.php в папке вашего модуля и определите его содержимое следующим образом:


  1. Создайте файл di.xml в папке вашего модуля и определите его содержимое следующим образом:
1
2
3
4
5
6

    
        
    


  1. Создайте папку Plugin в папке вашего модуля и создайте файл CustomWidgetPlugin.php в папке Plugin. Определите его содержимое следующим образом:


  1. В вашем плагине CustomWidgetPlugin можно добавить свою логику в метод afterToHtml. Здесь вы можете использовать переменную $subject для доступа к блоку товаров.
  2. Наконец, выполните следующие команды в корневой папке Magento 2:
1
2
3
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean


После выполнения этих шагов ваш новый виджет или функциональность будет добавлен на страницы товаров в Magento 2.

Пользователь

от gage , 4 месяца назад

@jeremy_larkin 

Если вы хотите добавить виджет или функциональность на страницы товаров в Magento 2 без создания собственного модуля, можно воспользоваться возможностями Magento для настройки и расширения функционала с использованием XML-разметки или блоков PHP.


Пример добавления кастомного блока на страницы продуктов без создания модуля:

  1. Создайте или отредактируйте файл catalog_product_view.xml в вашей теме в папке app/design/frontend/Vendor/Theme/Magento_Catalog/layout/.
  2. Добавьте следующий код в файл catalog_product_view.xml:
1
2
3
4
5
6
7
8
<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="MagentoCatalogBlockProductView" name="custom.widget" template="Magento_Catalog::product/custom_widget.phtml"/>
        </referenceContainer>
    </body>
</page>


  1. Создайте файл custom_widget.phtml в вашей теме в папке app/design/frontend/Vendor/Theme/Magento_Catalog/templates/product/.
  2. Добавьте код виджета или функциональности в файл custom_widget.phtml.


Обратите внимание, что этот способ добавляет новый блок, но для сложного функционала, возможно, потребуется создание модуля и использование PHP-кода для расширения возможностей Magento 2. В обоих случаях важно следовать стандартным практикам Magento 2 и не забывать обновлять и компилировать изменения после их внесения.