我很难覆盖product.php类(prestashop 1.7.5)。
我想在后台为产品添加一个新的价格字段(管理员可以使用该字段为产品添加额外的价格。
我已覆盖Product.php类(override / classes / product.php)以添加此新字段:
public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null){
public $service;
self::$definition['fields']['service'] = [
'type' => self::TYPE_FLOAT,
'required' => true, 'size' => 10
];
parent::__construct($id_product, $full, $id_lang, $id_shop, $context);
}
它有效,它在数据库中,管理员可以对它进行CRUD。
但是,现在计算价格有些不同,因为我希望价格+ =服务。
因此,始终在override / classes / product.php中,我通过查询数据库来覆盖公共静态函数priceCalculation(){}(选择然后更新结果)。
但是,每次我在后台办公室的产品表上单击“保存”或在前台办公室的产品表上单击(每次增加)时,都会进行计算...
这不是缓存问题,请务必在尝试之前将其删除...
只能在网络解决方案上找到要添加文本字段,而不是价格字段...
如果有人可以帮助:):)
谢谢!
计算价格(一旦获得DB提供的信息): $ price =(float)$ result ['price'] + $ result ['service'];
这种计算方法很好。
查询:更新ps_product设置价格= $ price,id_product = id_product。
也许我必须找到可以放置此查询的位置以避免这种循环...