【发布时间】:2019-12-21 04:21:42
【问题描述】:
我正在研究一个 magento 2 观察者(没有成功),以便在下订单后对具有 orderid 的系统执行 cURL 请求。
目前我只是发送一封电子邮件,但这仅用于测试目的
在安装了全新 Magento 2.3.2(无示例数据)并添加 1 个产品的 Plesk 服务器上工作。所以,新鲜的网店总共有 1 件产品。
目前我有以下代码:
/app/code/CompanyName/ModuleName/etc/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_place_after">
<observer name="companyname__modulename_observer_afterplaceorder" instance="CompanyName\ModuleName\AfterPlaceOrder" />
</event>
<config>
/app/code/CompanyName/ModuleName/AfterPlaceOrder.php
<?php
namespace CompanyName\ModuleName\Observer;
use Magento\Framework\Event\ObserverInterface;
use Psr\Log\LoggerInterface;
class AfterPlaceOrder implements ObserverInterface {
protected $logger;
public function __construct(LoggerInterface $logger) {
$this->logger = $logger;
}
public function execute(\Magento\Framework\Event\Observer $observer) {
Mage::log("Start execute module");
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html";
$headers[] = "From: Test SYSTEM";
$headers[] = "X-Mailer: PHP/".phpversion();
mail('testemail@companyname.com', 'Test message', "Order placed", implode("\r\n", $headers));
Mage::log("End of email");
}
}
我还尝试过其他活动,例如:
- checkout_onepage_controller_success_action
- sales_order_place_after
- sales_order_place_before
- sales_order_save_after
日志似乎不起作用,邮件没有发送并尝试 die() 但没有任何效果。
可能该事件从未被触发,但我就是不知道为什么。
你们能看到错误吗?
附:你用什么调试?有没有比记录更好的方法? 附言如果观察者是最好的方法,我现在也想这样做。有什么建议吗?
提前谢谢!
【问题讨论】: