الماجنتو 2:تجاوز فئة الكتلة حسب نوع المنتج
-
29-09-2020 - |
سؤال
آسف ولكن أنا لا أعرف كيفية تحديد سؤالي.اسمحوا لي أن تظهر لك رمز :
الماجنتو 1 :
<checkout_cart_index>
<reference name="checkout.cart">
<action method="addItemRender">
<type>simple</type>
<block>mymodule/checkout_cart_item_renderer_simple</block>
<template>checkout/cart/item/default.phtml</template>
</action>
</reference>
</checkout_cart_index>
الرمز أعلاه هو لتجاوز إدخال منتج بسيط في صفحة عربة التسوق.
الآن استفساري هو كيف يمكنني تحقيق نفس الشيء في الماجنتو 2.
يعطيكم الصّحة.
المحلول
في الماجنتو ، يتم تعريف العارضين تحت checkout_cart_item_renderers.xml
, ، هناك العديد منهم:
app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml
لعارضين المنتجات الافتراضية والبسيطةapp/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml
لحزمة المنتجات العارضينapp/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml
لعارضين المنتجات الافتراضيةapp/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml
لعارضين المنتجات القابلة للتكوينapp/code/Magento/Grouped/view/frontend/layout/checkout_cart_item_renderers.xml
لعارضين المنتجات المجمعةapp/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml
هذا واحد خاص لأنه يضيف كتلة إضافية لميزة رسالة الهدية إلى العارضين المختلفينapp/code/Magento/Wishlist/view/frontend/layout/checkout_cart_item_renderers.xml
هذا واحد خاص أيضا لأنه يضيف كتلة إضافية لميزة قائمة الرغبات إلى العارضين المختلفين
بعد التحقق من هؤلاء العارضين ، يمكنك العثور على العارض الذي تريد تجاوزه.
كما قلت ، تريد تجاوز عارض المنتج البسيط وهو Magento\Checkout\Block\Cart\Item\Renderer
.
إذا كنت ترغب في تجاوز الكتلة بأكملها يجب عليك استخدام تفضيلات الماجنتو 2:
في الوحدة النمطية الخاصة بك ، يمكنك إنشاء di.xml
ملف تحت etc
مجلد بالمحتوى التالي:
<?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\Checkout\Block\Cart\Item\Renderer" type="Vendor\ModuleName\Block\Checkout\Cart\Item\Renderer" />
</config>
ثم تحتاج إلى إنشاء app/code/Vendor/Module/Block/Checkout/Cart/Item/Renderer.php
فئة مع المحتوى التالي:
<?php
namespace Vendor\Module\Block\Checkout\Cart\Item;
class Renderer extends \Magento\Checkout\Block\Cart\Item\Renderer
{
public function theFunctionYouWantToRewrite()
{
// Do your custom stuff
}
}
ومع ذلك ، إذا كنت ترغب في العمل على مستويات الطريقة وليس على مستوى الفصل بأكمله ، فيجب عليك استخدام المكونات الإضافية
نظرا لأنه قد يكون محددا للغاية، فمن الصعب بالنسبة لي أن أقدم لك مثالا ولكن يمكنك العثور على موارد مفيدة حول المكونات الإضافية هنا: