我想添加产品功能,以便在Prestashop中向客户发送订单确认。
在1.6.1.4类/ PaymentModule.php文件的情况下,我们有,它显示产品名称 - 属性:属性值,如 Nice Nike shoes - 尺寸:42
我想扩展它以显示:
尼斯耐克鞋 - 尺寸:42
系列:Hyperdunk (作为功能系列和功能值Hyperdunk)
'name' => $product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : ''),
所以我想添加新的模板变量,如
'features' => $product['features'].(isset($product['features']) ? ' - '.$product['features'] : ''),
同样在order_conf_product_list.tpl中添加
<td style="border:1px solid #D6D4D4;">
<table class="table">
<tr>
<td width="10"> </td>
<td>
<font size="2" face="Open-sans, sans-serif" color="#555454">
<strong>{$product['name']}</strong><br />{$product['features']}
</font>
</td>
<td width="10"> </td>
</tr>
</table>
</td>
但它不起作用......有什么想法吗?
编辑:启用调试模式后,我有阵列 - 数组代替{$ product ['features']}变量
答案 0 :(得分:1)
首先,您在PaymentModule中的更改不正确。
$product['features']
只包含一个包含id_feature
,id_product
和id_feature_value
的数组。
您需要在分配给tpl之前获取功能名称和值,并使用:
$features = "";
if($product_features = Product::getFrontFeaturesStatic($order->id_lang, $product['id_product'])){
foreach($product_features as $f){
$features .= $f['name'] . " - " . $f['value'];
}
}
然后将其分配给模板
'features' => $features,
或连接到产品名称。
编辑(根据评论中的要求添加条件):
使用以下代码:
$features = "";
if($product_features = Product::getFrontFeaturesStatic($order->id_lang, $product['id_product'])){
foreach($product_features as $f){
if(in_array($f['id_feature'], array(3, 5)))
$features .= $f['name'] . " - " . $f['value'];
}
}