我重写的类的方法在 prestashop 8 中不起作用

问题描述 投票:0回答:1

我重写了模块中的 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;
        }

有人可以帮忙吗?我在主模块文件的许多部分都使用了该方法,但只有这部分不起作用,我不知道为什么

php class module overriding prestashop
1个回答
0
投票

您是否已完全清除商店的缓存?您的安装中似乎没有加载覆盖。

也许尝试打开调试模式来禁用大部分 PrestaShop 缓存;另外,检查您的后台是否启用了覆盖始终是值得的。

© www.soinside.com 2019 - 2024. All rights reserved.