PrestaShop 1.7中Cart::addCartRule方法声明不兼容警告求助
解决PrestaShop 1.7中Cart::addCartRule方法声明不兼容的PHP警告
错误信息
[Thu Oct 13 09:59:12.463274 2022] [proxy_fcgi:error] [pid 45545:tid 139624745764608] [client 146.59.8.136:33906]
AH01071: Got error 'PHP message: PHP Warning: Declaration of Cart::addCartRule($id_cart_rule) should be compatible with CartCore::addCartRule($id_cart_rule, bool $useOrderPrices = false) in /var/www/vhosts/wiejski-sklep.pl/httpdocs/override/classes/Cart.php on line 20'
问题原因
这个警告的核心是方法签名不匹配:你在override/classes/Cart.php中自定义的Cart类里的addCartRule方法,参数列表和PrestaShop核心类CartCore的同名方法不一致。核心方法包含一个带默认值的参数bool $useOrderPrices = false,而你的自定义方法只定义了$id_cart_rule这一个参数,PHP会判定两者不兼容并抛出警告。
解决步骤
- 打开文件
/var/www/vhosts/wiejski-sklep.pl/httpdocs/override/classes/Cart.php,找到第20行的addCartRule方法声明 - 修改方法的参数定义,与核心类保持一致:
public function addCartRule($id_cart_rule, bool $useOrderPrices = false) - 如果你在该方法内有自定义逻辑,无需额外修改——因为参数带有默认值,原有调用逻辑不会受影响
- 保存文件后,进入PrestaShop后台,在「高级参数」→「性能」页面清空缓存,确保修改生效
内容的提问来源于stack exchange,提问作者Laught Time
相关产品推荐
相关产品推荐

