问题描述
添加观察者后,尝试完成运输过程时出现错误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文件夹中的日志文件