Puede crear un módulo que haga que su mensaje de bloqueo de cms esté disponible para la plantilla KO al agregarlo a la configuración de pago.
En Your/Module/etc/frontend/di.xml
agregamos un nuevo proveedor de configuración a la configuración de pago:
<?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">Your\Module\Model\ConfigProvider</item>
</argument>
</arguments>
</type>
</config>
En Your/Module/Model/ConfigProvider.php
tenemos el código que recupera el html del bloque cms:
<?php
namespace Your\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()
{
$cmsBlockId = 1; // id of cms block to use
return [
'cms_block_message' => $this->_layout->createBlock('Magento\Cms\Block\Block')->setBlockId($cmsBlockId)->toHtml()
];
}
}
Ahora debe sobrescribir la plantilla KO shipping.html en su tema donde puede mostrar el bloque cms de esta manera:
<div data-bind="html: window.checkoutConfig.cms_block_message"></div>
Nota: si desea utilizar etiquetas html que contienen comillas dobles (por ejemplo, una etiqueta html a) en el bloque estático, debe escapar de las comillas dobles con una barra diagonal inversa. Por ejemplo:
Accept our <a target=\"_blank\" href=\"/privacy-policy\">privacy policy</a>
getConfig
método de\Magento\Checkout\Block\Cart\Sidebar
. Este método devuelve una matriz que luego se pasa a javascript como elwindow.checkout
objeto (esto ocurre enMagento/Checkout/view/frontend/templates/cart/minicart.phtml
).Creo que no puede llamar al bloque estático en el archivo .html, debe agregar ese código de bloque estático en el archivo phtml
Prueba el siguiente camino
intente agregar el siguiente código mantener por come css hacks
Se trata de soluciones temporales, es posible que obtenga otras buenas respuestas.
fuente