Magento 2: पंजीकरण फॉर्म में पता फ़ील्ड कैसे दिखाएं?


14

मैं ग्राहक पंजीकरण फ़ॉर्म में पता फ़ील्ड (डिफ़ॉल्ट बिलिंग पते में सहेजने के लिए) प्रदर्शित करना चाहता हूं। मुझे पता है कि मैजेंटो में कैसे करना है। लेकिन मैं मैगेंटो से टकरा रहा हूं। क्या इससे पहले किसी ने ऐसा किया है ..?

Magento 1 में किसी भी xml फ़ाइल अपडेट की तरह,

<customer_account_create>
    <reference name="customer_form_register">
        <action method="setData"><key>show_address_fields</key><value>1</value></action>
    </reference>
</customer_account_create>

आपको अपने पर्यवेक्षक के माध्यम से पता डेटा चुनना होगा और बिलिंग पता रिकॉर्ड स्वयं बनाना होगा। एक तैयार विस्तार का उपयोग क्यों नहीं करना चाहिए? उदाहरण के लिए: itoris.com/…
nico

@ इलवरसन, क्या आपने समाधान खोज लिया है? यदि हाँ तो कृपया यहाँ पोस्ट करें। यह दूसरों के लिए उपयोगी हो सकता है।
बोजजिया

जवाबों:


21

उदाहरण प्रदर्शन पता फ़ील्ड customer_account_create.xml का उपयोग कर :

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="customer_form_register">
            <arguments>
                <argument name="show_address_fields" xsi:type="boolean">true</argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

क्या आप जानते हैं कि Magento की नवीनतम रिलीज़ (v2.3.4) में इसे कैसे प्राप्त किया जा सकता है? मैंने अतीत में आपके सुझाव के समान तरीकों का उपयोग किया है और उन्होंने हमेशा काम किया है, जब तक कि 2.3.3 की रिलीज नहीं हो जाती।
कार्ल स्टीफंस

4

इस फ़ाइल को अपने कस्टम थीम में बनाएँ:

app/design/frontend/YOUR_PACKAGE/YOUR_THEME/Magento_Customer/layout/customer_account_create.xml

तो, आपको सेट करने की क्रिया विधि को सेट करने की आवश्यकता है जिसे setShowAddressFields सही कहा जाता है, जैसे कि नमूना:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="customer_form_register">
            <action method="setShowAddressFields">
                <argument name="show.address.fields" xsi:type="boolean">true</argument>
            </action>
        </referenceBlock>
    </body>
</page>

1

हाय पहले magento रूट फ़ोल्डर तो विक्रेता \ magento \ मॉड्यूल-ग्राहक \ view \ frontend \ लेआउट ग्राहक_account_create.xml फिर लाइन नंबर 13 पर जाएं इस कोड की जांच करें और लाइन नंबर 17 पर बिलो अनुभाग डालें

<referenceContainer name="content">
            <block class="Magento\Customer\Block\Form\Register" name="customer_form_register" template="form/register.phtml">
                <container name="form.additional.info" as="form_additional_info"/>
                <container name="customer.form.register.fields.before" as="form_fields_before" label="Form Fields Before" htmlTag="div" htmlClass="customer-form-before"/>
                <action method="setShowAddressFields">
                    <argument name="show.address.fields" xsi:type="boolean">true</argument>
                </action>
            </block>
            <block class="Magento\Cookie\Block\RequireCookie" name="require-cookie" template="Magento_Cookie::require_cookie.phtml">
                <arguments>
                    <argument name="triggers" xsi:type="array">
                        <item name="registerSubmitButton" xsi:type="string">.action.submit</item>
                    </argument>
                </arguments>
            </block>
        </referenceContainer>

केवल इस अनुभाग का उपयोग करें

<action method="setShowAddressFields">
                        <argument name="show.address.fields" xsi:type="boolean">true</argument>
                    </action>

1

कभी भी विक्रेता फ़ाइलों को संपादित न करें !!

अपने विषय में इसे कॉपी करें और वहां के लिए जाएं, मैं सेटिंग (बैकएंड) की तलाश में हूं क्योंकि आप इसे इस तरह से क्यों कोड करेंगे?

अगर किसी को यह मिल गया है तो मुझे बताएं

स्वागत करती है


0

बस अपना ऐप / डिज़ाइन / फ्रंटएंड / पैकेज / थीम / Magento_Customer / लेआउट खोलें और customer_account_create.xml खोलें।

लाइन संख्या 16 पर जाएं या नीचे कोड खोजें।

<container name="customer.form.register.fields.before" as="form_fields_before" label="Form Fields Before" htmlTag="div" htmlClass="customer-form-before"/>

नीचे कोड के बाद बस नीचे कोड डाल दिया।

<action method="setShowAddressFields">
                    <argument name="show.address.fields" xsi:type="boolean">true</argumen>
          </action>

इसके बाद आपको रजिस्टर पेज में स्टेट ड्रॉपडाउन दिखाई देगा।


0

इसे पूरा करने के दो तरीके हैं,

  1. टेम्पलेट फ़ाइल से

  2. Xml से

ऊपर xmlकई बार समझाया गया है, इसलिए मैं टेम्पलेट फ़ाइल तरीका करने जा रहा हूँ।

अपनी थीम के अंदर टेम्प्लेट फ़ाइल खोलें [कोर फ़ाइलों को संपादित न करें], ऐप / डिज़ाइन / फ्रंटएंड / [विक्रेता_नाम] / [theme_name] /Magento_Customer/templates/form/register.phtml

इस लाइन को खोजें, जिसमें यह कोड है,

getShowAddressFields()

यह या तो में हो सकता है,

<?php if($this->getShowAddressFields()): ?>

या

<?php if ($block->getShowAddressFields()): ?>

आपके Magento संस्करण पर निर्भर करता है।

उस लाइन से पहले यह कोड डालें,

<?php $this->setShowAddressFields(true); ?>

तो, अंतिम आउटपुट इस तरह दिखना चाहिए,

<?php $this->setShowAddressFields(true); ?>
<?php if($this->getShowAddressFields()): ?>

या

<?php $this->setShowAddressFields(true); ?>
<?php if ($block->getShowAddressFields()): ?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.