My objective is to set NO INDEX, NO FOLLOW to a specific category page in an observer class. Below is my event.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="sales_order_place_after">
<observer name="Perfectmakeupmirrors_sales_order_place_after" instance="Perfectmakeupmirrors\Order\Observer\OrderPlaceAfter" />
</event>
<event name="sales_order_save_after">
<observer name="Perfectmakeupmirrors_sales_order_save_after" instance="Perfectmakeupmirrors\Order\Observer\OrderSaveAfter" />
</event>
<event name="layout_load_before">
<observer name="add_robot_page" instance="Perfectmakeupmirrors\Order\Observer\SetRobotsMetaTag" />
</event>
</config>
Here is the observer class where I try to first find out if it is the category page and if so, find out if it contains the word "part" in the title and set it to noindex and nofollow here. Observer class doesn't seem to be called since the debugging doesn't log the text in debug.log. Please let me know if there is anything wrong with event itself.
<?php
namespace Perfectmakeupmirrors\Order\Observer;
use Magento\Framework\Event\ObserverInterface;
use \Magento\Framework\Event\Observer;
use Magento\Framework\Registry;
use \Psr\Log\LoggerInterface;
class SetRobotsMetaTag implements ObserverInterface
{
protected $request;
protected $registry;
protected $layoutFactory;
protected $logger;
public function __construct(
\Magento\Framework\App\Request\Http $request,
\Magento\Framework\Registry $registry,
\Magento\Framework\View\Page\Config $layoutFactory,
LoggerInterface $logger)
{
$this->registry = $registry;
$this->request = $request;
$this->layoutFactory = $layoutFactory;
$this->logger = $logger;
}
public function execute(Observer $observer) {
$this->logger->debug("Observer is alert");
if ($this->request->getActionName() == 'category') {
$category = $this->registry->registry('current_category');
$categoryName = $category->getName();
if (stripos($categoryName, 'part') !== false) {
$this->layoutFactory->setRobots('NOINDEX,NOFOLLOW');
}
}
}
}