Sie können ein Modul erstellen, das Ihre Cms-Blockierungsnachricht für die KO-Vorlage verfügbar macht, indem Sie sie zur Checkout-Konfiguration hinzufügen.
In Your/Module/etc/frontend/di.xml
der Checkout-Konfiguration fügen wir einen neuen Konfigurationsanbieter hinzu:
<?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>
In haben Your/Module/Model/ConfigProvider.php
wir den Code, der den HTML-Code des cms-Blocks abruft:
<?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()
];
}
}
Jetzt sollten Sie die Vorlage "shipping.html KO" in Ihrem Design überschreiben, in der Sie den cms-Block folgendermaßen anzeigen können:
<div data-bind="html: window.checkoutConfig.cms_block_message"></div>
Hinweis: Wenn Sie HTML-Tags verwenden möchten, die doppelte Anführungszeichen enthalten (z. B. ein HTML-Tag), müssen Sie die doppelten Anführungszeichen mit einem Backslash versehen. Beispielsweise:
Accept our <a target=\"_blank\" href=\"/privacy-policy\">privacy policy</a>
getConfig
Methode von erstellen\Magento\Checkout\Block\Cart\Sidebar
. Diese Methode gibt ein Array zurück, das dann alswindow.checkout
Objekt an Javascript übergeben wird (dies tritt in aufMagento/Checkout/view/frontend/templates/cart/minicart.phtml
).Ich denke, Sie können nicht statischen Block in HTML-Datei aufrufen Sie müssen diesen statischen Block-Code in HTML-Datei hinzufügen
Versuchen Sie den folgenden Pfad
Versuchen Sie, den folgenden Code hinzuzufügen, der von Come CSS-Hacks verwaltet wird
Dies ist eine vorübergehende Lösung, möglicherweise erhalten Sie einige andere gute Antworten
quelle