【发布时间】:2022-07-05 19:03:23
【问题描述】:
给出下面的代码示例
private function test(Cart $cart): LineItemCollection
{
return $cart->getLineItems()->filter(function (LineItem $item) {
// Only consider products, not custom line items or promotional line items
if ($item->getType() !== LineItem::PRODUCT_LINE_ITEM_TYPE) {
return false;
}
$exampleInLabel = $item->getLabel();
并且一件商品在购物车中,exampleInLabel 是标签的两倍。
这与任何其他功能相同,例如
getPayloadValue()
或
getQuantity()
等。
如何克服?
-
这个方法是在
CartProcessor
中调用的吗?或者它叫什么名字?请记住,处理器在计算过程中可能会运行多次,因此有问题的代码可能会被简单地执行两次,因为商店软件会重新运行购物车计算。 -
@j_elfering 是的,它在
CartProcessor
中,我知道商店软件会多次遍历购物车以根据规则“丰富”数据。但是,我的问题仍然存在...如果我需要获取项目的数量以创建更多规则,例如我会得到 33 而不是 3...等等...任何解决方案?