سؤال

آسف ولكن أنا لا أعرف كيفية تحديد سؤالي.اسمحوا لي أن تظهر لك رمز :

الماجنتو 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
    }
}

ومع ذلك ، إذا كنت ترغب في العمل على مستويات الطريقة وليس على مستوى الفصل بأكمله ، فيجب عليك استخدام المكونات الإضافية

نظرا لأنه قد يكون محددا للغاية، فمن الصعب بالنسبة لي أن أقدم لك مثالا ولكن يمكنك العثور على موارد مفيدة حول المكونات الإضافية هنا:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top