我试图在一页结帐时在购物车摘要中显示产品功能,并在
shopping-cart-product-line.tpl
中使用以下代码,但出现错误。
{foreach from=$product.features item=feature name=features}
{if $feature.id_feature == 9}
{$features.value|escape:'htmlall':'UTF-8'}
{/if}
{/foreach}
我需要对
CartController.php
做些什么吗?
错误 注意:未定义索引:值在 path/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : 第 89 行 eval() 代码
应该是
{$feature.value}
而不是{$features.value}
:
{foreach from=$product.features item=feature name=features}
{if $feature.id_feature == 9}
{$feature.value|escape:'htmlall':'UTF-8'}
{/if}
{/foreach}
无需重写控制器或类。
试试这个方法
{assign var="features" value=Product::getFrontFeaturesStatic(Context::getContext()->language->id, $product.id_product)}
{foreach $features as $feature}
{if $feature.id_feature == 6}
<div>{$feature.value|escape:'htmlall':'UTF-8'}</div>
{/if}
{/foreach}
您需要通过修改以下文件之一中的代码来分配功能值(这取决于您在商店中使用的结帐类型):
/controllers/front/OrderOpcController.php (Edit for OPC)
或
/controllers/front/OrderController.php (Edit for five step)
$features 数组中缺少“value”字段,您可以使用以下函数来获取任何产品的功能数据。
Product::getFeaturesStatic($id_product);
这个解决方案在 Prestashop 8 中也能正常工作:
{assign var="features" value=Product::getFrontFeaturesStatic(Context::getContext()->language->id, $product.id_product)}
{foreach $features as $feature}
<div>{$feature.name}: {$feature.value|escape:'htmlall':'UTF-8'}</div
{/foreach}