我想在prestashop的确认邮件中发送“每盒单位”自定义功能。
这是一个例子,如果我想做什么
$myprod = new Product($product['id_product']);
$features = $myprod->getFrontFeatures(1));
foreach(from=$features item=feature)
{
if ($feature.name == "Units per box")
{
$UnitsPerBox = $feature.value|escape:'htmlall':'UTF-8';
}
}
但是我需要在php文件(PaymentModule.php
)而不是tpl文件中执行此操作,因此代码将无法正常工作。
如果有人能指出我如何用PHP实现这一目标的正确方向,我将不胜感激。
编辑:
我使用了提供的示例代码,它似乎进入了数组但没有返回任何值
当我运行像这样的测试代码时
$myprod = new Product($product['id_product']);
$features = $myprod->getFrontFeatures(1);
$UnitsPerBox .= '100';
foreach ($features as $feature)
{
$UnitsPerBox .= '200';
if ($feature->name == 'Units Per Box')
{
$UnitsPerBox .= htmlentities($feature->value, 'ENT_QUOTES', 'UTF-8');
$UnitsPerBox .= $feature->name;
}
else
{
$UnitsPerBox .= $feature->name;
$UnitsPerBox .= htmlentities($feature->name, 'ENT_QUOTES', 'UTF-8');
$UnitsPerBox .= htmlentities($feature->value, 'ENT_QUOTES', 'UTF-8');
}
}
我得到了这个输出:“100200200200200200”
任何帮助都会很棒,谢谢。
谢谢, 安德鲁
编辑:解决方案
最后让它工作,谢谢你的帮助
$myprod = new Product($product['id_product']);
$features = $myprod->getFrontFeatures(1);
foreach ($features as $feature)
{
foreach ($feature as $key => $value)
{
if($value == "Units per box")
{
$UnitsPerBox = $feature['value'];
}
}
}
答案 0 :(得分:1)
$myprod = new Product($product['id_product']);
$features = $myprod->getFrontFeatures(1);
foreach ($features as $feature) {
if ($feature->name == 'Units per box') {
$UnitsPerBox = htmlentities($feature->value, 'ENT_QUOTES', 'UTF-8');
}
}
答案 1 :(得分:1)
这看起来像Smarty模板代码。在这种情况下,您正在寻找的功能是htmlentities()
:
foreach($features as $feature)
{
if ($feature->name == "Units per box")
{
$UnitsPerBox = htmlentities($feature->value, ENT_QUOTES, 'UTF-8');
}
}
答案 2 :(得分:0)
我修改了我的文件
classes/PaymentModule.php
我可以打印产品的简短描述,但我只是无法将产品的功能放在订单确认邮件模板上,我想出了一个使用此页面的解决方案,这也是https://www.prestashop.com/forums/topic/658353-15-add-products-features-in-order-confirmation-email/,使用最后一个解决方案,我只能打印订单确认的ID。
我在第353行附近添加了以下内容
$lesfeatures = Product::getFrontFeaturesStatic((int)$id_lang, `$product['id_product']);`
foreach ($lesfeatures as $key => $lafeature) {
$machin .= print_r($lafeature);
$machin .= $lafeature['id_feature'].'name:'.$lafeature['name'].'value:'.$lafeature['value'].'<br>';}
然后围绕第400行
<strong>'.$product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : '').'</strong>'.$machin.
&#39;
当我刚收到订单ID时
这是我目前在第400行的工作代码,用于打印描述
<strong>
Cantidad de Piezas: '.$product['quantity'].'
<br/>
'.$product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : '').'
<br/>Descripci贸n: '.$product['description_short'].'
</strong>