我提前为这个糟糕的问题标题道歉我无法想出一个总结解决方案的好方法我正在寻找一句话。
平台是Magento / PHP,但Magento部分并不是这个问题的一部分。基本上我们在结账时提供服务(只是一个下拉框),供客户选择他们的订单的未来日期。我的任务是将这项服务的显示限制在少数几种产品上。
如果订单包含一个或多个允许的产品,或者允许的几个产品,则会显示下拉框。
如果订单中包含允许和非允许产品的混合,显然不会显示下拉框。
我创建了一个名为“can_futureship”的新产品属性,并为将来允许发布的少数产品将值设置为True。我现在的问题是我似乎无法掌握挑出这些产品的最佳方法。
有一大块代码(foreach循环)遍历购物车中的所有商品并检查它们是否有其他限制和属性,所以我知道我需要将它放在那个循环中。特别是在混合真假条件的情况下。例如一些伪代码:
Product1 = True
Product2 = True
Product3 = True
$can_futureship_show_drop_down = false;
foreach(Items as item) {
$product['can_futureship'] = model->getattribute('can_futureship');
if ($product['can_futureship'] = TRUE) {
$can_futureship_show_drop_down = true;
}
}
这是我最初的想法,如果所有产品都是真的或者数组中的最后一个产品是真的,那么显然会有效,但如果有任何错误的结果,我需要它最终为假。我也在想,也许我应该将所有结果加载到一个数组中并检查错误的结果?非常感谢任何帮助!
答案 0 :(得分:1)
以另一种方式思考;)
$can_ship_future = true;
foreach($products as $product) {
if ( ! $product->canShipFuture() ) {
$can_ship_future = false;
break; // Don't need to check the other products
}
}