You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决独立OpenCart邮件脚本调用$config->get()的报错问题?

解决OpenCart独立脚本中无法调用$config->get()的问题

我太懂这种头疼的情况了——你开发了一个独立于插件的邮件发送面板,已经在OpenCart后台加了启用/禁用的开关选项,但脚本里死活拿不到这个设置,还报了Call to a member function get() on a non-object的错对吧?

其实问题根源很直白:你的独立脚本没有初始化OpenCart的核心运行环境,$config对象根本就没被创建出来,自然没法调用它的get()方法。

修复步骤

你需要在脚本开头先加载OpenCart的核心文件,初始化必要的类,具体代码参考下面:

// 首先引入OpenCart的主配置文件和启动文件
// 注意:根据你的脚本所在位置调整路径,如果脚本在OpenCart根目录下,直接用下面的路径
require_once('config.php');
require_once('system/startup.php');

// 初始化Registry对象(OpenCart用来管理核心类的容器)
$registry = new Registry();

// 创建Config类实例并注册到Registry
$config = new Config();
$registry->set('config', $config);

// 加载OpenCart的系统设置(包括你添加的sendemails_status)
$config->load('setting');

// 现在就可以正常使用$config->get()了
if ($config->get('sendemails_status')) {
    $store_id = $config->get('config_store_id');
    // 这里写你的邮件发送逻辑
}

关键说明

  • 路径调整:如果你的脚本不在OpenCart根目录,比如放在admin/custom/下,那config.php的路径就要写成../config.php,system/startup.php写成../system/startup.php,确保能正确引入文件。
  • $config->load('setting')这一步会把OpenCart后台所有的设置项加载到Config对象里,这样你就能拿到自己添加的sendemails_status了。

内容的提问来源于stack exchange,提问作者LiveEn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:14:39