Кнопка "Перемещение заказа" + флажок "Условия и положения" после способов оплаты


Я пытался разместить кнопку заказа и флажок "Условия и положения" под разделом "Способ оплаты" во время процедуры оформления заказа. Теперь я проследил за этим:

Magento 2 - переместить позицию "Правила и условия" при оформлении заказа

И

Http://inchoo.net/magento-2/dont-mess-magento-2-checkout/

Но это не работает (по крайней мере, для меня). Я не знаю, как применить:

<!-- ko foreach: getRegion('after-place-agreements') -->
    <!-- ko template: getTemplate() --><!-- /ko -->
<!--/ko-->

И я тоже не уверен независимо от того, применял я или нет checkout_index_index.xml правильный способ (это ничего не меняет на моей странице):

<?xml version="1.0"?>
<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">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="checkout" xsi:type="array">
                            <item name="children" xsi:type="array">
                                <item name="sidebar" xsi:type="array">
                                    <item name="children" xsi:type="array">
                                        <item name="before-place-order" xsi:type="array">
                                            <item name="componentDisabled" xsi:type="boolean">true</item>
                                        </item>
                                        <item name="after-place-agreements" xsi:type="array">
                                            <item name="component" xsi:type="string">uiComponent</item>
                                            <item name="displayArea" xsi:type="string">after-place-agreements</item>
                                            <item name="dataScope" xsi:type="string">before-place-order</item>
                                            <item name="provider" xsi:type="string">checkoutProvider</item>
                                            <item name="config" xsi:type="array">
                                                <item name="template" xsi:type="string">Magento_Checkout/payment/before-place-order</item>
                                            </item>
                                                <item name="agreements" xsi:type="array">
                                                    <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/checkout-agreements</item>
                                                    <item name="sortOrder" xsi:type="string">100</item>
                                                    <item name="displayArea" xsi:type="string">after-place-agreements</item>
                                                    <item name="dataScope" xsi:type="string">checkoutAgreements</item>
                                                    <item name="provider" xsi:type="string">checkoutProvider</item>
                                                </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

Теперь, если бы это сработало, это только переместило бы флажок для условий и положений. В этом разделе они рассказывают о каждой кнопке "разместить заказ", которая должна быть объявлена в каждом отдельном файле:

Magento 2: Переместите кнопку оформить заказ с оплаты на боковую панель на странице оформления заказа?

Есть ли кто-нибудь, у кого есть более подробное объяснение того, как достичь всего этого?

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

Весьма признателен.

Author: Condor, 2018-04-03

1 answers

Выполните этот шаг:

=> Шаг 1:

Создайте файл checkout_index_index.xml в:

Приложение/код/Имя поставщика/Порядок размещения/вид/интерфейс/путь к макету

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <css src="VendorName_PlaceOrder::css/place_order_button.css"/>
    </head>
    <body>
        <referenceBlock name="checkout.root">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="checkout" xsi:type="array">
                            <item name="children" xsi:type="array">
                                <item name="sidebar" xsi:type="array">
                                    <item name="children" xsi:type="array">
                                        <item name="summary" xsi:type="array">
                                            <item name="component" xsi:type="string">VendorName_PlaceOrder/js/view/summary</item>
                                            <item name="config" xsi:type="array">
                                                <item name="template" xsi:type="string">VendorName_PlaceOrder/summary</item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

=> Шаг 2:

Создайте файл summary.html по пути

Приложение/код/Имя поставщика/Порядок размещения/просмотр/интерфейс/веб-сайт/шаблон

<div class="opc-block-summary" data-bind="blockLoader: isLoading">
    <span data-bind="i18n: 'Order Summary'" class="title"></span>
    <!-- ko foreach: elems() -->
        <!-- ko template: getTemplate() --><!-- /ko -->
    <!-- /ko -->
</div>
<!-- ko if: (isVisible()) -->
<div class="actions-toolbar-trigger" id="place-order-trigger-wrapper">
    <button type="button" class="button action primary" id="place-order-trigger" value="Place Order" >
        <span>Place Order</span>
    </button>
</div>
<!-- /ko -->

=> Шаг 3:

Создать файл summary.js на пути

Приложение/код/Имя поставщика/Порядок размещения/просмотр/интерфейс/веб/js/просмотр

define(
    [
        'jquery',
        'ko',
        'Magento_Checkout/js/view/summary',
        'Magento_Checkout/js/model/step-navigator',
    ],
    function(
        $,
        ko,
        Component,
        stepNavigator
    ) {
        'use strict';

        return Component.extend({

            isVisible: function () {
                return stepNavigator.isProcessed('shipping');
            },
            initialize: function () {
                $(function() {
                    $('body').on("click", '#place-order-trigger', function () {
                        $(".payment-method._active").find('.action.primary.checkout').trigger( 'click' );
                    });
                });
                var self = this;
                this._super();
            }

        });
    }
);

=> Шаг 4 :

Для перемещения флажка "Условия и положения" в checkout_index_index.xml :

<?xml version="1.0"?>
    <!--
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">

        <body>
            <referenceBlock name="checkout.root">
                <arguments>
                    <argument name="jsLayout" xsi:type="array">
                        <item name="components" xsi:type="array">
                            <item name="checkout" xsi:type="array">
                                <item name="children" xsi:type="array">
                                    <item name="sidebar" xsi:type="array">
                                        <item name="children" xsi:type="array">

                                            <item name="summary" xsi:type="array">
                                                <item name="children" xsi:type="array">

                                                    <item name="agreements" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/checkout-agreements</item>
                                                        <item name="sortOrder" xsi:type="string">100</item>
                                                        <item name="displayArea" xsi:type="string">before-place-order</item>
                                                        <item name="dataScope" xsi:type="string">checkoutAgreements</item>
                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                    </item>

                                                    <item name="agreements-validator" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/agreement-validation</item>
                                                    </item>

                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </argument>
                </arguments>
            </referenceBlock>
        </body>
    </page>
 0
Author: Emipro Technologies Pvt. Ltd., 2018-04-12 11:05:25