Vous pouvez créer un module qui rendra votre message de blocage de cms disponible pour le modèle KO en l'ajoutant à la configuration de paiement.
Dans Your/Module/etc/frontend/di.xml
nous ajoutons un nouveau fournisseur de configuration à la configuration de paiement:
<?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>
Dans Your/Module/Model/ConfigProvider.php
nous avons le code qui récupère le code HTML du bloc 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()
];
}
}
Maintenant, vous devez remplacer le modèle KO shipping.html dans votre thème où vous pouvez afficher le bloc cms comme suit:
<div data-bind="html: window.checkoutConfig.cms_block_message"></div>
Remarque: si vous souhaitez utiliser des balises html contenant des guillemets doubles (par exemple une balise html a) dans le bloc statique, vous devez échapper les guillemets doubles avec une barre oblique inverse. Par exemple:
Accept our <a target=\"_blank\" href=\"/privacy-policy\">privacy policy</a>
getConfig
méthode de\Magento\Checkout\Block\Cart\Sidebar
. Cette méthode renvoie un tableau qui est ensuite transmis à javascript en tantwindow.checkout
qu'objet (cela se produit dansMagento/Checkout/view/frontend/templates/cart/minicart.phtml
).Je pense que vous ne pouvez pas appeler un bloc statique dans un fichier .html, vous devez ajouter ce code de bloc statique dans un fichier phtml
Essayez le chemin ci-dessous
essayez d'ajouter le code ci-dessous maintenir par come css hacks
Il s'agit de solutions temporaires, vous obtiendrez d'autres bonnes réponses
la source