upon adding my observer, I got error 500 when I'm trying to complete shipping process. What I want to achieve is, I want to send a review request after the shipment is done.I've started using Magento for about a month ago, that's why I don't know if I made an error on Observer, events.xml or it just doesn't work. I've been doing this for about three days, please help.
Vendor name: Lns
Module Name: ReviewRequest
Review.php
<?php
namespace Lns\ReviewRequest\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
class Review implements ObserverInterface
{
protected $transportBuilder;
protected $storeManager;
protected $logger;
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
TransportBuilder $transportBuilder,
StoreManagerInterface $storeManager,
LoggerInterface $logger
) {
$this->transportBuilder = $transportBuilder;
$this->storeManager = $storeManager;
$this->logger = $logger;
}
/**
* Below is the method that will fire whenever the event runs!
*
* @param Observer $observer
*/
public function execute(Observer $observer)
{
$store = $this->storeManager->getStore();
$templateParams = ['store' => $store, 'customer' => $customer, 'administrator_name' => $receiverInfo['name']];
$transport = $this->transportBuilder
->setTemplateIdentifier('Entrelabel Add Review')
->setTemplateOptions(['area' => 'frontend', 'store' => $store->getId()])
->addTo($receiverInfo['email'], $receiverInfo['name'])
->setTemplateVars($templateParams)
->setFrom('general')
->getTransport();
try {
// Send an email
$transport->sendMessage();
} catch (\Exception $e) {
// Write a log message whenever get errors
$this->logger->critical($e->getMessage());
}
return var_dump($e);
}
}
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="sales_order_shipment_save_after">
<observer name="reviewRequest" instance="Lns\ReviewRequest\Observer\Review" />
</event>
</config>