If you are working in Magento 2, and want to remove block from layout without any condition, then you can read blog:
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.
I hope this blog will help you with Remove Block From Layout on Specific Condition in Magento 2. You may also check our wide range of best Magento 2 Extensions.
Please reach out to our team via a support ticket if you have any queries.
Try this and if you have any queries then just comment below 🙂
Be the first to comment.