Magento 2 || Create a custom static block using model php adding custom var on checkout config - mpaz-redstage/magento-snippets GitHub Wiki
src/app/code/Redstage/CheckoutStaticBlock/etc/frontend/di.xml:9
<?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">Redstage\CheckoutStaticBlock\Model\ConfigProvider</item>
</argument>
</arguments>
</type>
<type name="Redstage\CheckoutStaticBlock\Model\ConfigProvider">
<arguments>
<argument name="blockId" xsi:type="string">checkout_disclaimer</argument>
</arguments>
</type>
</config>
src/app/code/Redstage/CheckoutStaticBlock/Model/ConfigProvider.php:18
<?php
/**
* ConfigProvider
*
* @copyright Copyright © 2019 Redstage. All rights reserved.
* @author [email protected]
*/
namespace Redstage\CheckoutStaticBlock\Model;
use Magento\Checkout\Model\ConfigProviderInterface;
use Magento\Cms\Block\Block;
use Magento\Framework\View\LayoutInterface;
class ConfigProvider implements ConfigProviderInterface
{
protected $_layout;
protected $cmsBlock;
public function __construct(LayoutInterface $layout, $blockId)
{
$this->_layout = $layout;
$this->cmsBlock = $this->constructBlock($blockId);
}
public function constructBlock($blockId)
{
$block = $this->_layout->createBlock(Block::class)->setBlockId($blockId)->toHtml();
return $block;
}
public function getConfig()
{
return ['custom_message' => $this->cmsBlock];
}
}
src/app/code/Redstage/CheckoutStaticBlock/view/frontend/web/template/before-form.html:8
<!--
~ /**
~ Copyright © 2016 Magestore. All rights reserved.
~ See COPYING.txt for license details.
~ */
-->
<li>
<h1 class="checkout_header" data-bind="text: oneStepTitle"></h1>
<p data-bind="html: window.checkoutConfig.custom_message"></p>
<p class="subtitle" data-bind="text: oneStepDescription"></p>
</li>
<!-- ko if: !isLogin() -->
<li id='onestepcheckout_login_link' class="onestepcheckout-login-link" data-bind="visible: isShowLoginLink">
<a href="javascript:void(0);" id="onestepcheckout-login-link"
data-bind="text: loginLinkTitle, click: showLoginForm">
</a>
</li>
<!-- /ko -->
<!-- ko if: isLogin() -->
<li id='onestepcheckout_logout_link' class="onestepcheckout-login-link" data-bind="visible: isShowLoginLink">
<a href="javascript:void(0);" id="onestepcheckout-logout-link"
data-bind="i18n: 'Logout', click: logout">
</a>
</li>
<!-- /ko -->
src/app/code/Redstage/CheckoutStaticBlock/view/frontend/requirejs-config.js:11
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
var config = {
map: {
'*': {
'Magestore_OneStepCheckout/template/before-form.html':
'Redstage_CheckoutStaticBlock/template/before-form.html'
}
}
};