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

时间:2017-12-14 14:15:49

标签: php prestashop prestashop-1.6

我想添加产品功能,以便在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">&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']}变量

1 个答案:

答案 0 :(得分:1)

首先,您在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'];
    }
}