ম্যাজেন্টো 2: চেকআউট পৃষ্ঠায় পেমেন্ট থেকে সাইডবারে স্থান অর্ডার বোতামটি সরান?


13

আমি পেমেন্ট থেকে চেকআউট পৃষ্ঠায় সাইডবারে স্থান অর্ডার বোতামটি স্থানান্তর করতে চাই।

এখানে চিত্র বর্ণনা লিখুন

কেউ আমাকে পরামর্শ দিতে পারেন?

সম্পাদনা : এটি কি সম্ভব (উত্তর / পদ্ধতির সাথে সরবরাহ করা) ?

আমার গবেষণা থেকে প্রতিটি অর্থ প্রদানের একটি নিজস্ব বোতাম সহ html টেম্পলেট রয়েছে has এই বোতামটি নকআউট.জেএস টেম্পলেট থেকে লোড করা হয়নি। যেমন "বিনামূল্যে" অর্থ প্রদান পদ্ধতির একটি অংশ:

    <div class="checkout-agreements-block">
        <!-- ko foreach: $parent.getRegion('before-place-order') -->
            <!-- ko template: getTemplate() --><!-- /ko -->
        <!--/ko-->
    </div>
    <div class="actions-toolbar">
        <div class="primary">
            <button class="action primary checkout"
                    type="submit"
                    data-bind="
                    click: placeOrder,
                    attr: {title: $t('Place Order')},
                    css: {disabled: !isPlaceOrderActionAllowed()}
                    ">
                <span data-bind="i18n: 'Place Order'"></span>
            </button>
        </div>
    </div>

"চেক / মানি অর্ডার" অর্থ প্রদানের পদ্ধতিটি দেখতে দেখতে (কেবলমাত্র পার্থক্যগুলি enable: (getCode() == isChecked())হেই হেই, এখনও পার্থক্য রয়েছে এবং "1 সর্বশক্তিমান সাধারণ স্থান অর্ডার বোতাম" নেই:

  <div class="checkout-agreements-block">
        <!-- ko foreach: $parent.getRegion('before-place-order') -->
            <!-- ko template: getTemplate() --><!-- /ko -->
        <!--/ko-->
    </div>
    <div class="actions-toolbar">
        <div class="primary">
            <button class="action primary checkout"
                    type="submit"
                    data-bind="
                    click: placeOrder,
                    attr: {title: $t('Place Order')},
                    css: {disabled: !isPlaceOrderActionAllowed()},
                    enable: (getCode() == isChecked())
                    "
                    disabled>
                <span data-bind="i18n: 'Place Order'"></span>
            </button>
        </div>
    </div>

প্রদত্ত উত্তরটি কেবলমাত্র চুক্তিগুলিকে সরিয়ে দেয় যার ফলাফল এরকম কিছু হয়:

এখানে চিত্র বর্ণনা লিখুন


হাই - আপনি কি শেষ পর্যন্ত এটি করার কোনও যুক্তিসঙ্গত উপায় খুঁজে পেয়েছেন? ধন্যবাদ
টম বর্মান

শর্তাদি এবং শর্তগুলির চেকবক্স বৈধতাতে আপনি কীভাবে সাফল্য পেয়েছেন?
কনডোর

উত্তর:


6

সারাংশ ব্লকের নীচে প্লেস অর্ডার বোতামটি পরিবর্তন করার জন্য আমার অনুরূপ প্রয়োজনীয়তা ছিল। যেহেতু প্রতিটি অর্থ প্রদানের জন্য নির্ধারিত স্থান অর্ডার বোতাম রয়েছে। আমি সারাংশ ব্লক অর্ডার করার পরে একটি কাস্টম স্থান অর্ডার বোতাম তৈরি করেছি। বোতামটি ক্লিক করার সময় আমি নির্বাচিত অর্থ প্রদানের পদ্ধতির স্থান অর্ডার বোতামটি ট্রিগার করেছি।

ধাপ 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>

ধাপ ২:

summary.htmlপথে একটি ফাইল তৈরি করুন

অ্যাপ্লিকেশন / কোড / VendorName / PlaceOrder / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / টেমপ্লেট

<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পথে একটি ফাইল তৈরি করুন

অ্যাপ্লিকেশন / কোড / VendorName / PlaceOrder / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / 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:

ডিফল্ট স্থান অর্ডার বোতামটি আড়াল করতে সিএসএস ফাইলটি নীচে ব্যবহার করুন

অ্যাপ্লিকেশন / কোড / VendorName / PlaceOrder / দৃশ্য / ফ্রন্টএন্ড / ওয়েব / সিএসএস / place_order_button.css

.payment-method-content .actions-toolbar{
    display: none;
}

স্ক্রিনশটটি সংযুক্ত!

এখানে চিত্র বর্ণনা লিখুন


হ্যালো @ হরিথা, আমি আপনার সমাধান চেষ্টা করেছি কিন্তু এটি কাজ করছে না। বোতাম চেকআউট পৃষ্ঠায় দেখাচ্ছে না। আপনি কি আমাকে এই সাহায্য করতে পারেন?

হাই মায়াঙ্ক Zalavadia, আপনি চেক করতে পারেন যদি আপনার কাস্টম মডিউল অ্যাপ্লিকেশন / ইত্যাদি / config.php ফাইলটি মধ্যে Magento_Checkout মডিউল পর লোড হয়
Haritha

আমি ইতিমধ্যে এটি যাচাই করেছি এবং এখন এটি কাজ করছে তবে আপনার স্ক্রিনশটটিতে উল্লেখ করার মতো আমি প্লেস অর্ডার বোতামটি যুক্ত করতে সক্ষম নই। এটি কেবল সংক্ষিপ্তসারে প্রদর্শিত হয়। আপনি কি দয়া করে আপনার স্ক্রিনশটে যেমন উল্লেখ করেছেন ঠিক একই জায়গায় প্লেস অর্ডার বোতামটি সরাতে আমাকে সহায়তা করুন।

আপনি কি আপনার স্ক্রিনশট ভাগ করতে পারেন?
হরিথা

nimb.ws/5EdgS2 চেক স্ক্রিনশট

1

এই সমস্ত উত্তর সম্পূর্ণ নয় কারণ নিবন্ধক মডিউলটির জন্য রেজিস্ট্রেশন.এফপি ফাইল অনুপস্থিত

এটি আমার পাওয়া সেরা উত্তর is

https://github.com/davidroberto/magento2-place_order_sidebar

এখানে সম্পূর্ণ মডিউলটি আপনাকে কেবল অ্যাপ / কোডের অধীনে এবং পিএইচপি বিন / ম্যাজেন্টো সেটআপ চালানোর জন্য প্রয়োজন: আপগ্রেড কমান্ড

আশা করি এই সাহায্য !!!


ধন্যবাদ, এটি আমার পক্ষে কাজ করে।
সর্বवेश দিনেশকুমার প্যাটেল

0

প্রথমে আপনার থিমটিতে checkout_index_index.xML তৈরি করতে হবে, তারপরে 314 লাইনে স্থান-ক্রমের আগে আইটেমটি অক্ষম করতে হবে:

 <item name="before-place-order" 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="children" xsi:type="array">
    <item name="agreementss" 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>

তারপরে স্থান অর্ডার দেওয়ার পরে আপনার ডিফল্ট টেমপ্লেটে (এইচটিএমএল) অনুলিপি করুন:

<!-- ko foreach: getRegion('after-place-agreements') -->
<!-- ko template: getTemplate() --><!-- /ko -->
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.