By default, when you call $this->messageManager->addSuccessMessage
within Magento, you cannot pass custom HTML into your message. This doesn't provide you with the flexibility to provide customized messages to your visitors.
This module provides the ability to display custom messages including HTML, and still escapes the HTML to prevent cross-site scripting (XSS) attacks.
composer require markshust/magento2-module-messages
bin/magento module:enable MarkShust_Messages
bin/magento setup:upgrade
/**
* Any of the built-in complex message functions can be called with this identifer:
* addComplexSuccessMessage
* addComplexNoticeMessage
* addComplexWarningMessage
* addComplexErrorMessage
*
* @param string $identifer Set to 'withHtml' to use this module.
* @param mixed[] $data Data containing elements.
* @type string 'html' Desired output including HTML.
* @type string[] 'allowed_tags' (optional) List of allowed tags to render as HTML.
*/
$this->messageManager->addComplexSuccessMessage($identifer, $data);
protected messageManager;
public function __construct(
...
\Magento\Framework\Message\ManagerInterface $messageManager,
...
) {
$this->messageManager = $messageManager;
...
}
$this->messageManager->addComplexSuccessMessage('withHtml', [
'html' => '<b>This is bold text!</b> And this is not.',
'allowed_tags' => ['b'],
]);