1. Khai báo sự phụ thuộc kiểm tra của mô-đun
ứng dụng / mã / NameSpace / ModuleName / etc / module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="NameSpace_ModuleName" setup_version="0.0.1" active="true">
<sequence>
<module name="Magento_Checkout"/>
</sequence>
</module>
</config>
2. Ghi đè lên bố cục thanh toán
ứng dụng / mã / NameSpace / ModuleName / view / frontend / layout / checkout_index_index.xml
<?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="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="steps" xsi:type="array">
<item name="children" xsi:type="array">
<item name="shipping-step" xsi:type="array">
<item name="children" xsi:type="array">
<item name="shippingAddress" xsi:type="array">
<item name="children" xsi:type="array">
<item name="shippingAdditional" xsi:type="array">
<item name="component" xsi:type="string">uiComponent</item>
<item name="displayArea" xsi:type="string">shippingAdditional</item>
<item name="children" xsi:type="array">
<item name="additional_block" xsi:type="array">
<item name="component" xsi:type="string">NameSpace_ModuleName/js/view/checkout/shipping/additional-block</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
</body>
</page>
3. Tạo thành phần giao diện người dùng JavaScript
Thanh toán Magento 2 được quản lý bằng JavaScript (với Knockout). Vì vậy, bạn cần phải tạo một công cụ JS tùy chỉnh. Nó sẽ tạo liên kết giữa thành phần UI thanh toán và mẫu HTML tùy chỉnh của bạn.
ứng dụng / mã / NameSpace / ModuleName / view / frontend / web / js / view / checkout / vận chuyển / thêm-block.js
định nghĩa([
'uiComponent'
], hàm (Thành phần) {
'Sử dụng nghiêm ngặt';
trả về Hợp phần.extend ({
mặc định: {
mẫu: 'NameSpace_ModuleName / thanh toán / vận chuyển / khối bổ sung'
}
});
});
4. Tạo mẫu HTML
Sau đó, tạo mẫu HTML sẽ hiển thị trong thanh toán.
ứng dụng / mã / NameSpace / ModuleName / view / frontend / web / template / checkout / vận chuyển / thêm-block.html
<div class="checkout-block" id="block-custom">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
<p>Cum sociis natoque penatibus et magnis dis parturient montes.</p>
</div>
5. Xóa bộ nhớ cache
Cuối cùng chạy các lệnh sau:
php bin/magento cache:clean
php bin/magento setup:upgrade
chmod -R 777 var/*
Tải về mô-đun demo ví dụ đầy đủ từ đây