我重写了模块中的 Cart 类,并在 prestashop 1.7 中使用它,现在我将其升级到 prestashop 8,并且我在重写中添加的方法不再起作用,它显示“调用未定义的方法 Cart::getOrderTotalGross()” 这是我的覆盖 Cart.php 类中的代码
use PrestaShop\PrestaShop\Adapter\ServiceLocator;
class Cart extends CartCore
{
private const DEFAULT_ATTRIBUTES_KEYS = ['attributes' => '', 'attributes_small' => ''];
public function getOrderTotalGross($with_taxes = true, $type = Cart::BOTH, $products = null, $id_carrier = null, $use_cache = true, bool $keepOrderPrices = false, $small = false)
{
return $this->getOrderTotal($with_taxes, $type, $products, $id_carrier, $use_cache, $keepOrderPrices, true);
}
}
这是我在模块的主文件中使用该方法的部分
public function hookDisplayHeader($params)
{
if ((int) Configuration::get('ACOMPTE_CHOICE') == 1) {
Context::getContext()->cookie->__set('installmentpayment_type', 1);
}
$cart = Context::getContext()->cart;
if (Context::getContext()->cart->getOrderTotalGross(true) < (float) Configuration::get('ACOMPTE_MIN_AMOUNT')) {
$id_cart = (int) $this->context->cart->id;
Db::getInstance()->delete('installmentpayment', 'id_cart=' . (int) $id_cart);
return;
}
有人可以帮忙吗?我在主模块文件的许多部分都使用了该方法,但只有这部分不起作用,我不知道为什么
您是否已完全清除商店的缓存?您的安装中似乎没有加载覆盖。
也许尝试打开调试模式来禁用大部分 PrestaShop 缓存;另外,检查您的后台是否启用了覆盖始终是值得的。