यहां मैं चेकआउट की शिपिंग विधि के ऊपर कस्टम ब्लॉक दिखाने के लिए उदाहरण देता हूं
1) पर di.xml बनाएँ
एप्लिकेशन / कोड / विक्रेता / मॉड्यूल / etc / दृश्यपटल / di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Model\CompositeConfigProvider">
<arguments>
<argument name="configProviders" xsi:type="array">
<item name="cms_block_config_provider" xsi:type="object">Vendor\Module\Model\ConfigProvider</item>
</argument>
</arguments>
</type>
</config>
2) अपने स्थिर ब्लॉक को windows.checkoutConfig में परिभाषित करने के लिए ConfigProvider.php बनाएं
एप्लिकेशन / कोड / विक्रेता / मॉड्यूल / मॉडल / ConfigProvider.php
<?php
namespace Vendor\Module\Model;
use Magento\Checkout\Model\ConfigProviderInterface;
use Magento\Framework\View\LayoutInterface;
class ConfigProvider implements ConfigProviderInterface
{
/** @var LayoutInterface */
protected $_layout;
public function __construct(LayoutInterface $layout)
{
$this->_layout = $layout;
}
public function getConfig()
{
$myBlockId = "my_static_block"; // CMS Block Identifier
//$myBlockId = 20; // CMS Block ID
return [
'my_block_content' => $this->_layout->createBlock('Magento\Cms\Block\Block')->setBlockId($myBlockId)->toHtml()
];
}
}
3) अपने मॉड्यूल में checkout_index_index.xml को ओवरराइड करें और अपने स्वयं के शिपिंग घटक को परिभाषित करें
एप्लिकेशन / कोड / विक्रेता / मॉड्यूल / देखें / दृश्यपटल / लेआउट / checkout_index_index.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" 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="component" xsi:type="string">Vendor_Module/js/view/shipping</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
</body>
</page>
4) अब shipping.js बनाएं और अपनी खुद की शिपिंग टेम्पलेट फ़ाइल को परिभाषित करें
एप्लिकेशन / कोड / विक्रेता / मॉड्यूल / देखें / दृश्यपटल / वेब / js / देखें / shipping.js
define(
[
'jquery',
'ko',
'Magento_Checkout/js/view/shipping'
],
function(
$,
ko,
Component
) {
'use strict';
return Component.extend({
defaults: {
template: 'Vendor_Module/shipping'
},
initialize: function () {
var self = this;
this._super();
}
});
}
);
5) से शिपिंग . html कॉपी करें
विक्रेता / Magento / मॉड्यूल-चेकआउट / देखें / दृश्यपटल / वेब / टेम्पलेट / shipping.html
करने के लिए आपका मॉड्यूल
एप्लिकेशन / कोड / विक्रेता / मॉड्यूल / देखें / दृश्यपटल / वेब / टेम्पलेट / shipping.html
अब window.checkoutConfig.my_block_content को shipping.html में जोड़ें जहाँ आप अपना स्टैटिक ब्लॉक दिखाना चाहते हैं
<div data-bind="html: window.checkoutConfig.my_block_content"></div>
यहां मैं अपने स्टैटिक ब्लॉक में नए उत्पाद विजेट जोड़ता हूं
उत्पादन: