Opencart 扩展不';无法启用

Opencart 扩展不';无法启用,opencart,opencart-3,Opencart,Opencart 3,我正在将Opencart 2.3的扩展迁移到Opencart 3。一切似乎都很好,只是我不能启用扩展。当我转到extension->shipping时,状态不会改变,它将保持禁用状态,但是如果我转到settings,下拉列表显示已选中enabled。前端或日志文件中没有任何错误。我试过调试,但一切似乎都很好。有什么想法吗?数据库中的设置(extensionName_状态)也是1 注意:扩展很大,如果我把它贴在这里会太多。如果您需要特定的代码片段,我将提供它。关于2.3->3.0迁移的棘手问题是一

我正在将Opencart 2.3的扩展迁移到Opencart 3。一切似乎都很好,只是我不能启用扩展。当我转到extension->shipping时,状态不会改变,它将保持禁用状态,但是如果我转到settings,下拉列表显示已选中enabled。前端或日志文件中没有任何错误。我试过调试,但一切似乎都很好。有什么想法吗?数据库中的设置(extensionName_状态)也是1

注意:扩展很大,如果我把它贴在这里会太多。如果您需要特定的代码片段,我将提供它。

关于2.3->3.0迁移的棘手问题是一些变量名以微妙的方式发生了更改(如我在上面的评论中所述)。状态变量可能是您的问题。以下是控制器文件中3.0(左)与2.3(右)的比较:

<       $data['total_better_together_status'] = $this->config->get('total_better_together_status');
---
>       $data['better_together_status'] = $this->config->get('better_together_status');
<$data['total\u better\u together\u status']=$this->config->get('total\u better\u together\u status');
---
>$data['better\u-together\u-status']=$this->config->get('better\u-together\u-status');

如果您的OpenCart 3.x模块标记在模块类别中,则:

    if (isset($this->request->post['module_mymodule_status'])) {
        $data['module_mymodule_status'] = $this->request->post['module_mymodule_status'];
    } else {
        $data['module_mymodule_status'] = $this->config->get('module_mymodule_status');
    }
或者,如果它标记在分析类别中,则只需将
模块更改为
分析
,如下所示:

if (isset($this->request->post['analytics_mymodule_status'])) {
    $data['analytics_mymodule_status'] = $this->request->post['analytics_mymodule_status'];
} else {
    $data['analytics_mymodule_status'] = $this->config->get('analytics_mymodule_status');
}

您是否更改了状态标志的名称?如果装运模块名为
foo
,则状态标志现在为
shipping\u foo
(而在2.3中它只是
foo
)。谢谢,这似乎是问题的原因,不幸的是,我没有注意到此更改。介意你把这个作为答案,这样我就可以把它标为最佳答案。