Ich versuche, den Block "Geschenkoptionen" (Formular für Geschenknachrichten) von der aktuellen Warenkorbseite in den ersten Schritt der Kaufabwicklung (Versand) zu verschieben. Ich muss es direkt unter Versandmethoden platzieren. Ich habe versucht, meinem Thema ein GiftMessage-Modul hinzuzufügen, und darin die Layoutdatei checkout_index_index.xml geändert, um auf den Checkout-Stammblock für das Einfügen von Geschenknachrichten zu verweisen, aber es war nutzlos. Jede Hilfe wäre sehr dankbar. Vielen Dank!
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="checkout.root">
<block class="Magento\GiftMessage\Block\Cart\GiftOptions" name="checkout.cart.order.actions.gift_options" template="cart/gift_options.phtml" cacheable="false">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="types" xsi:type="array"/>
<item name="components" xsi:type="array">
<item name="giftOptionsCart" xsi:type="array">
<item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item>
<item name="config" xsi:type="array">
<item name="template" xsi:type="string">Magento_GiftMessage/gift-message</item>
<item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item>
</item>
</item>
</item>
</argument>
</arguments>
</block>
</referenceBlock>
</body>
magento2
checkout
giftmessage
Maquina
quelle
quelle
Antworten:
Zunächst müssen wir verstehen, wie die Magento-Geschenknachricht auf der Warenkorbseite funktioniert.
Diese Datei ist unser Licht. Wir werden viel Zeit sparen, wenn wir die Logik verstehen.
window.giftOptionsConfig
: Diese globale Variable, die für die Konfiguration verwendet wird. Wir sollten es an der Kasse neu erstellen.Beginnen wir mit der Implementierung unserer benutzerdefinierten Logik. Erstellen Sie ein neues Modul und fügen Sie folgende Logik hinzu:
app / code / Vendor / CheckoutDemo / view / frontend / layout / checkout_index_index.xml
Es gibt 3 Notizen:
-Versandschritt verwendet unsere benutzerdefinierte Versand-HTML-Vorlage. Es ist einfacher, unsere benutzerdefinierte Region hinzuzufügen.
-Unser Geschenkbereich: Ich habe den Inhalt von kopiert
vendor/magento/module-gift-message/view/frontend/layout/checkout_cart_index.xml
.-Die Geschenkkonfiguration
Erstellen Sie app / code / Vendor / CheckoutDemo / view / frontend / templates / gift_options.phtml
Wir verwenden die
giftOptionsConfig
globale Variable, da sie von der js-Logik der Geschenknachricht verwendet wird.app / code / Vendor / CheckoutDemo / etc / frontend / di.xml
app / code / Vendor / CheckoutDemo / Model / GiftMessageConfigProvider.php
Erstellen Sie die Versand-HTML, kopieren Sie den Inhalt von
vendor/magento/module-checkout/view/frontend/web/template/shipping.html
in unsere benutzerdefinierteapp/code/Vendor/CheckoutDemo/view/frontend/web/template/shipping.html
. Und fügen Sie unsere benutzerdefinierte Geschenknachrichtenregion hinzu:App / Code / Anbieter / CheckoutDemo / Ansicht / Frontend / Web / Vorlage / Versand.html
Ergebnis:
quelle
Versuchen Sie es mit dem folgenden Code
Zuvor habe ich eine Zahlungsgateway-Erweiterung erstellt, in der ich meine benutzerdefinierte Vorlagendatei im Zahlungsbereich gerendert habe. Ich habe diesen Code auch hier hinzugefügt. Bitte hinzufügen, wenn ich etwas vermisse. (Cirkle_Behalf) ist der Modulname.
quelle