向 Prestashop 电子邮件订单确认添加功能

Add features to Prestashop email order confirmation

我想在 Prestashop 中将产品功能添加到发送给客户的订单确认中。

在那种情况下,在 1.6.1.4 class/PaymentModule.php 文件中我们有,它向我们显示 产品名称 - 属性:属性值 就像 漂亮的耐克鞋 - 尺码: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">&nbsp;</td>
            <td>
                <font size="2" face="Open-sans, sans-serif" color="#555454">
                    <strong>{$product['name']}</strong><br />{$product['features']} 
                </font>
            </td>
            <td width="10">&nbsp;</td>
        </tr>
    </table>
</td>

但它不起作用...有什么想法吗?

编辑: 启用调试模式后,我有数组 - 数组代替 {$product['features']} 变量

首先,您对 PaymentModule 的更改不正确。 $product['features'] 只包含一个数组 id_featureid_productid_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'];
    }
}