在Magento 2上添加shipping_save_after观察器时出现错误500

问题描述

添加观察者后,尝试完成运输过程时出现错误500。我想要实现的是,我想在装运完成后发送审核请求。我已经使用Magento大约一个月前,这就是为什么我不知道在Observer events.xml中是否出错的原因否则就不起作用。我已经做了三天了,请帮忙。

供应商名称 Lns
模块名称 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>

解决方法

在课程开始前添加

use Magento\Framework\Mail\Template\TransportBuilder 
use Magento\Store\Model\StoreManagerInterface

并检查var文件夹中的日志文件