Php Opencart 1.5.5.1:从功能模块中删除隐藏的产品
我将特色模块设置为显示8种产品。我在特色模块中加载了16种产品。当我禁用网页上显示的某个产品时,它不会将其替换为已启用的产品。所以网页上有一个空白点 我不知道如何解决这个问题。我在第24行的catalog/controller/module/featured.php中查找:Php Opencart 1.5.5.1:从功能模块中删除隐藏的产品,php,if-statement,opencart,Php,If Statement,Opencart,我将特色模块设置为显示8种产品。我在特色模块中加载了16种产品。当我禁用网页上显示的某个产品时,它不会将其替换为已启用的产品。所以网页上有一个空白点 我不知道如何解决这个问题。我在第24行的catalog/controller/module/featured.php中查找: foreach ($products as $product_id) { $product_info = $this->model_catalog_product->getProduct($pr
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
我想用if-else语句来包装这个foreach,比如:
If ($product is disabled) {
skip to next product
}
else {
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
...
...
...
}
我想试试这样的东西:
if ($product_id['status'] == 0) {
no idea here
}
else{
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
...
...
...
}
但同样,不确定if($product_id['status']==0)
是否正确,甚至不确定if语句中的产品如何处理(如果正确)
谢谢。我明白你的意思了。这是编写本模块的人的疏忽 您需要在设置限制之前过滤禁用的产品,即:在
catalog/controller/module/featured.php中查找此行:
$products = array_slice($products, 0, (int)$setting['limit']);
在之前,添加:
// filter out disabled products befor setting limit
foreach ($products as $k => $v){
$p_info = $this->model_catalog_product->getProduct($v);
if ($p_info['status']==0) {
unset ($products[$k]);
}
}
就这些。
顺便说一句,发现这个缺点做得很好。完美。我快疯了。。尝试if(){continue;}并查看如何取消product_info['quantity']==0以及其他各种错误的内容。。。。。帮我省了一个晚上的压力,再次谢谢。