我有一个附加到 completeOrder 事件的触发器,所以通过 $observer 对象我可以获取报价和当前订单。
问题是 - 我如何才能 100% 准确地检查用户是使用单页结帐还是多页结帐?
如果他使用多页,则将创建 2 个或更多订单,并且我的触发器将运行几次。
检查东西的一种方法是检查报价对象的地址总数
$quote->getAllAddresses();
因此,如果它有超过 2 个地址(不仅仅是 1 个帐单和 1 个运输),那么它是多页的,否则是一页的。问题是如果通过多页结账流程,其中一个订单是虚拟的,而另一个是常规的。虚拟订单没有地址,所以我的条件在这种情况下不起作用。