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