Javascript PrestaShop 1.7如何在产品页面上获取id\u product\u属性?
id_产品_属性在URL-值“10”中可用: 我需要从当前产品页面获取当前id\u产品属性。可能来自$\u GET,也可能来自DOM元素,或者presta shop变量,但在添加到购物车之前,我必须将其传递给JavaScript函数(即使最后,客户没有将产品添加到购物车-这就是为什么我不能使用钩子:“actionCartSave”) 我可以从hook displayAfterProductThumbs访问此值,但获取当前值有问题。要获得正确的值,我需要: 1) 在产品页面上选择产品属性(尺寸、颜色) 2) 刷新页面以触发挂钩“displayAfterProductThumbs” 3) 读取数据 但我需要它,而不需要它让人耳目一新Javascript PrestaShop 1.7如何在产品页面上获取id\u product\u属性?,javascript,php,prestashop,prestashop-1.7,Javascript,Php,Prestashop,Prestashop 1.7,id_产品_属性在URL-值“10”中可用: 我需要从当前产品页面获取当前id\u产品属性。可能来自$\u GET,也可能来自DOM元素,或者presta shop变量,但在添加到购物车之前,我必须将其传递给JavaScript函数(即使最后,客户没有将产品添加到购物车-这就是为什么我不能使用钩子:“actionCartSave”) 我可以从hook displayAfterProductThumbs访问此值,但获取当前值有问题。要获得正确的值,我需要: 1) 在产品页面上选择产品属性(尺寸、
在文档中,我找不到任何关于这方面的信息。已尝试查找以下短语:id\u产品属性、id\u组合、id组合、ipa。大多数关于id_product_属性的信息(在谷歌上找到)都与搜索引擎优化有关,“在url中设置id_product_属性用于搜索引擎优化不是一个好主意”。Hi@DamianSobkowiak,欢迎来到SO:-) 在PrestaShop 1.6.x和更早的版本中,您可以通过使用
idProductAttribute
global JS变量来检索此ID
在PrestaShop 1.7.x版本中,买方选择的产品属性(大小、颜色等)id存储在数组中的组
变量中,但是该变量不再包含相关的id\u产品属性
本身
将产品添加到购物车时,将调用/controllers/front/CartController.php
文件,您可以在第366行看到以下内容:
$this->id_product_attribute = (int)Product::getIdProductAttributeByIdAttributes($this->id_product, Tools::getValue('group'));
您的解决方案可以是:
if(isset($\u-GET['group'])和&is\u数组($\u-GET['group'])和&isset($\u-GET['id\u-product']))
{
包括('config/config.inc.php');
echo(int)Product::getIDProductAttributeByAdattributes((int)$\u GET['id\u Product'],$\u GET['group']);
}
在进行ajax调用时,不要忘记传递组
和id\u产品
值我希望这有帮助 有一个名为displayProductAdditionalInfo的钩子。 在模块中注册钩子,并在参数中获得产品详细信息。 当我们更改产品组合时,此代码将运行。 因此,idProductAttribute将在组合更改时自动更新
public function hookDisplayProductAdditionalInfo($params)
{
if isset($params['product']) {
// Now return the input type hidden with idproductattribute
return '<input type="hidden" name="id_product_attribute" id="product_attribute_info" value="'.$params['product']['id_product_attribute'].'"/>';
}
}
公共函数hookDisplayProductAdditionalInfo($params)
{
如果设置($params['product'])){
//现在返回使用idproductattribute隐藏的输入类型
返回“”;
}
}
现在,单击“添加到购物车”以阻止默认操作,并从输入隐藏字段中获取idProductAttribute。非常简单的方法!非常感谢!:)