We sacrifice by not doing any other technology, so that you get the best of Magento.

We sacrifice by not doing any other technology, so that you get the best of Magento.

    Step1 : Override message.js in current theme file on the following path.

    – /app/design/frontend/Magemonkey/child/Magento_Theme/web/js/view/

    – Add the below code:

    /**
     * Copyright © Magento, Inc. All rights reserved.
     * See COPYING.txt for license details.
     */
    
    /**
     * @api
     */
    define([
        'jquery',
        'uiComponent',
        'Magento_Customer/js/customer-data',
        'underscore',
        'escaper',
        'jquery/jquery-storageapi'
    ], function ($, Component, customerData, _, escaper) {
        'use strict';
    
        return Component.extend({
            defaults: {
                cookieMessages: [],
                messages: [],
                allowedTags: ['div', 'span', 'b', 'strong', 'i', 'em', 'u', 'a']
            },
    
            /**
             * Extends Component object by storage observable messages.
             */
            initialize: function () {
                this._super();
    
                this.cookieMessages = _.unique($.cookieStorage.get('mage-messages'), 'text');
                this.messages = customerData.get('messages').extend({
                    disposableCustomerData: 'messages'
                });
    
                // Force to clean obsolete messages
                if (!_.isEmpty(this.messages().messages)) {
                    customerData.set('messages', {});
                }
    
                $.mage.cookies.set('mage-messages', '', {
                    samesite: 'strict',
                    domain: ''
                });
            },
    
            RemoveMessage: function () {
                setTimeout(function () {
                    $('.page.messages').hide()
                }, 1000);
            },
            /**
             * Prepare the given message to be rendered as HTML
             *
             * @param {String} message
             * @return {String}
             */
            prepareMessageForHtml: function (message) {
                return escaper.escapeHtml(message, this.allowedTags);
            }
        });
    });

    Step2 : Override messages.phtml in current theme file on the following path.

    – /app/design/frontend/Magemonkey/child/Magento_Theme/templates/

    – Add the below code:

    <?php
    /**
     * Copyright © Magento, Inc. All rights reserved.
     * See COPYING.txt for license details.
     */
    ?>
    <div data-bind="scope: 'messages'">
        
            <!-- ko if: cookieMessages && cookieMessages.length > 0 -->
            <div aria-atomic="true" role="alert" data-bind="foreach: { data: cookieMessages, as: 'message' }" class="messages">
                <div data-bind="attr: {
                    class: 'message-' + message.type + ' ' + message.type + ' message',
                    'data-ui-id': 'message-' + message.type
                }">
                    <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
                   <div class="close"  data-bind="click: $parent.RemoveMessage"></div> 
                </div>
            </div>
            
            <!-- /ko -->
    
            <!-- ko if: messages().messages && messages().messages.length > 0 -->
            <div aria-atomic="true" role="alert" class="messages" data-bind="foreach: {
                data: messages().messages, as: 'message'
            }">
                <div data-bind="attr: {
                    class: 'message-' + message.type + ' ' + message.type + ' message',
                    'data-ui-id': 'message-' + message.type
                }">
                    <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
                    <div class="close"  data-bind="click: $parent.RemoveMessage"></div>
                </div>
            </div>
            
            <!-- /ko -->
        
    </div>
    <script type="text/x-magento-init">
        {
            "*": {
                "Magento_Ui/js/core/app": {
                    "components": {
                            "messages": {
                                "component": "Magento_Theme/js/view/messages"
                            }
                        }
                    }
                }
        }
    </script>

    that’s it

    Here is message design and output :

    Fill the below form if you need any Magento relate help/advise/consulting.

    With Only Agency that provides a 24/7 emergency support.

      Get a Free Quote