Magento 2: Làm thế nào để hiển thị trường địa chỉ trong mẫu đăng ký?


14

Tôi muốn hiển thị các trường địa chỉ (để lưu trong địa chỉ thanh toán mặc định) trong mẫu đăng ký khách hàng. Tôi biết cách làm trong Magento 1. Nhưng tôi bị tấn công với Magento 2. Có ai đã làm điều này trước đây chưa ..?

Mọi cập nhật tệp xml như trong magento 1,

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

Bạn sẽ phải nhận dữ liệu địa chỉ thông qua người quan sát của mình và tự tạo bản ghi địa chỉ thanh toán. Tại sao không sử dụng một phần mở rộng sẵn sàng? Ví dụ: itoris.com/ từ
nico

@Elavaraan, bạn đã tìm được giải pháp chưa? Nếu có xin vui lòng gửi ở đây. Nó có thể hữu ích cho những người khác.
Bojjaiah

Câu trả lời:


20

Ví dụ hiển thị các trường địa chỉ bằng cách sử dụng 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>

4

Tạo tập tin này trong chủ đề tùy chỉnh của bạn:

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

Vì vậy, bạn cần đặt phương thức hành động có tên setShowAddressFields như true, giống như mẫu đó:

<?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

Trước tiên, hãy tìm thư mục gốc magento sau đó là nhà cung cấp

<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>

chỉ sử dụng phần này

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

1

Không bao giờ chỉnh sửa tập tin nhà cung cấp !!

Sao chép này trong chủ đề của bạn và tiếp tục ở đó, tôi đang tìm kiếm cài đặt (phụ trợ) bởi vì tại sao bạn lại viết mã như vậy?

Nếu ai đó đã tìm thấy điều này cho tôi biết

Greets


0

Chỉ cần mở ứng dụng / thiết kế / frontend / Gói / Theme / Magento_Customer / layout của bạn và mở customer_account_create.xml.

Chuyển đến Dòng num 16 hoặc tìm mã bên dưới.

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

Sau mã bên dưới chỉ cần đặt mã dưới đây.

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

Sau này, bạn sẽ thấy trạng thái thả xuống trong trang đăng ký.


0

Có hai cách để thực hiện điều này,

  1. Từ tệp mẫu

  2. Từ xml

Trên đây đã giải thích xmlcách nhiều lần, vì vậy tôi sẽ làm cách tập tin mẫu.

Mở tệp mẫu bên trong chủ đề của bạn [Không chỉnh sửa các tệp cốt lõi], ứng dụng / thiết kế / frontend / [eller_name] / [theme_name] /Magento_Customer/temsheet/form/register.phtml

tìm dòng có mã này,

getShowAddressFields()

nó có thể là trong

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

hoặc là

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

tùy thuộc vào phiên bản magento của bạn.

Đặt mã này trước dòng đó,

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

Vì vậy, đầu ra cuối cùng sẽ trông như thế này,

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

hoặc là

<?php $this->setShowAddressFields(true); ?>
<?php if ($block->getShowAddressFields()): ?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.