问题描述
所以我在 Module.PHP
下面添加了这个代码,目的是获取特定的订单详细信息并将它们传递给一个 trustpilot 脚本代码,该代码也粘贴在下面。我不确定 $order 变量会返回什么数据,所以我对该变量做了一个 dd() 。但问题是,我不允许下测试订单。那么有人可以告诉我如何从 $order 变量中获取电子邮件、全名和订单 ID 并将它们传递给 trustpilot javascript 吗?
Event::on(
Order::class,Order::EVENT_AFTER_COMPLETE_ORDER,function(Event $event) {
// @var Order $order
$order = $event->sender;
Craft::dd($order);
}
);
trustpilot 脚本:
<script>
document.addEventListener('DOMContentLoaded',function() {
const trustpilot_invitation = {
recipientEmail: 'john@gmail.com',recipientName: 'John',referenceId: 'Order_123',source: 'InvitationScript',};
tp('createInvitation',trustpilot_invitation);
});
</script>
解决方法
最好检查 Craft Commerce API 作为参考,但这些应该对您有用。
$order->reference
$order->email
对于名字和姓氏,有两种可能的方法来获得它们。 来自分配给订单的用户(如果有)或来自分配给订单的客户(如果有,因为人们可以是客人)。请注意,如果您想从客户那里获取这些详细信息,则必须从主要地址获取 - 如果可能,请尝试仅使用用户...更容易。
例如
$order->user->firstName