我正在尝试在 PrestaShop 中创建一个模块,在
hookDisplayAdminProductsExtra
中添加一个字段。但是,当我提交表单时,并没有执行submit方法。
public function hookDisplayAdminProductsExtra()
{
if (Tools::isSubmit("submitextra")) {
$id_product = (int)Tools::getValue('id_product');
$extraInfo = Tools::getValue('extra');
$sql = 'UPDATE psdev_product SET produto_extra = "' . pSQL($extraInfo) . '"
WHERE id_product = ' . (int) $id_product;
Db::getInstance()->execute($sql);
}
return $this->display(__FILE__, "views/templates/hook/displayAdminExtra.tpl");
}
这是 TPL 文件:
<form action="{$link->getAdminLink('AdminProducts')|escape:'html':'UTF-8'}&action=saveExtraInfo" method="post">
<label for="extra">Extra Info</label>
<input type="text" name='extra' class="form-control" />
<button type="submit" name='submitextra'>Save</button>
</form>
该模块在不同的钩子中使用时可以完美工作。我怀疑问题在于我应该使用页面的提交输入值,但我正在努力寻找正确的方法。
该钩子主要是为了兼容遗留代码来插入内容。用于在产品页面(Prestashop 1.7)上添加活动内容的演示模块可以在此 github 存储库中找到。
此页面还提供了 Prestashop 8.1.0 的更新文档。