Admin Prestashop管理命令控制器

Admin Prestashop管理命令控制器,admin,prestashop,Admin,Prestashop,我想问一下这个控制器 在过去的版本(如1.5)中,我可以在管理/选项卡中找到它,并添加其他功能 在1.6版本中,我找不到任何管理类文件。所以我应该编辑controllers/admin/AdminOrdersController是吗 elseif(isset($_POST['submitInvoice'])){ if ($this->tabAccess['edit'] === '1') { mysql_que

我想问一下这个控制器

在过去的版本(如1.5)中,我可以在管理/选项卡中找到它,并添加其他功能

在1.6版本中,我找不到任何管理类文件。所以我应该编辑controllers/admin/AdminOrdersController是吗

 elseif(isset($_POST['submitInvoice'])){
            if ($this->tabAccess['edit'] === '1')
            {
                mysql_query('UPDATE `'._DB_REFIX_.'orders` SET `invoice_number` = \''.$_POST['invoice_number'].'\',`order_date` = \''.$_POST['order_date'].'\', `changed_invoice`=1, `manager`=\''.$cookie->firstname.' '.$cookie->lastname.'\', `changedStatus`= \''.$_POST['changedStatus'].'\' WHERE `id_order` = '.$_GET['id_order']);
            }
        }
我添加此代码是为了更新一些值,如发票号或订单日期。但是我无法更新这个。有相同的日期和号码。更新是一种糟糕的方法还是什么?

  • 如果可能的话,您应该始终使用模块和钩子来修改PrestaShop逻辑
  • 如果您需要重写一个函数,并且没有合适的钩子,那么应该使用重写:
    override/controllers/admin/AdminOrderController.php
    。此文件的内容应如下所示:
    AdminOrderController扩展了AdminOrderControllerCore
    。如果您不确定我的意思,您应该尝试在overide文件夹中搜索任何重写类
  • 您的代码非常不安全。您至少应该使用
    Db::getInstance()->execute($sql)
  • <> LI>您的代码可能无法工作,因为您正在函数中间某个地方编写值,而该顺序是一个对象,这意味着在将值写入数据库之后,可能会保存Orror对象。保存订单对象时,它将覆盖您的值
同时检查
类/order/…
,也许您会在那里找到正确的文件