Menu Close
    Hire Us Request Quote Reading List Switch to Dark Mode

    Remove Block From Layout on Specific Condition in magento2

    If you are working in magento2, and want to remove block from layout without any condition, then you can read blog:

    Remove block from layout

    Now, if you have a specific condition to display the block or not, then this can be achieve by observer.

    Firstly you need to create an events.xml file in your module,
    app/code/Webkul/Test/etc/frontend/events.xml

    <?xml version="1.0"?>
    
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
        <event name="layout_generate_blocks_after">
            <observer name="remove_block" instance="Webkul\Test\Observer\RemoveBlockForDiscount" />
        </event>
    </config>

    Here, layout_generate_blocks_after observer is called after a block is rendered on the page.
    And define the file to execute on observer.

    Now, create observer file:

    app/code/Webkul/Test/Observer/RemoveBlockForDiscount.php

    <?php
    
    namespace Webkul\Test\Observer;
    
    use Magento\Framework\Event\Observer;
    use Magento\Framework\Event\ObserverInterface;
    
    class RemoveBlockForDiscount implements ObserverInterface
    {
    
        public function execute(Observer $observer)
        {
            /** @var \Magento\Framework\View\Layout $layout */
            $layout = $observer->getLayout();
            $block = $layout->getBlock('checkout.cart.coupon');
    
            if ($block) {
                //you can apply or add you condition here.
                $layout->unsetElement('checkout.cart.coupon');
            }
        }
    }

    Here, i am removing discount coupon block from the page.

    After adding code in your module, discount coupon block will get removed from pages, as from checkout/cart page.

    Hope this blog will help you in implementation of functionality.

    Thank you.

    . . .

    Comment

    Add Your Comment

    Be the first to comment.

    Back to Top
    css.php
    Hire Us!
    Brief us about your requirements and we'll get back to you.
    Woo! Hooy!
    We have just recieved your project brief and our expert will contact you shortly.
    Send Again
    Close