在工艺品贸易中下订单后检索订单详细信息

问题描述

所以我在 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