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

迁移PrestaShop 1.5.6后出现HOOK_EGR_FBLOGIN未定义索引错误求助

解决PrestaShop 1.5.6迁移后HOOK_EGR_FBLOGIN未定义的错误

我碰到过好几个类似的PrestaShop迁移问题,这个错误本质上是Smarty编译缓存残留,或者Facebook登录模块的钩子关联丢失导致的,给你一步步的解决办法:

第一步:先清理Smarty编译缓存

这个错误提示来自编译后的模板文件,迁移后旧的缓存文件还在,会引用不存在的钩子索引。

  • 如果能正常登录后台:进入高级参数 -> 性能,点击「清除缓存」,记得勾选「清除Smarty编译缓存」和「清除缓存文件夹」这两个选项,然后保存。
  • 如果后台进不去:直接用FTP或者主机的文件管理器,找到cache/smarty/compile和cache/smarty/cache这两个文件夹,删除里面的所有文件(别删文件夹本身)。

第二步:检查并修复Facebook登录模块状态

这个钩子是那个EGR Facebook登录模块注册的,模块状态异常就会导致钩子索引不存在:

  • 登录后台后,进入模块 -> 模块管理,找到对应的Facebook登录模块(名称应该包含EGR FB Login),确保它是已安装且启用的状态。
    • 如果模块是禁用的,直接启用它;
    • 如果模块没安装,重新上传安装包(从旧主机备份里导出模块文件,或者找原模块安装包)进行安装。
      模块启用后,PrestaShop会自动注册对应的钩子,HOOK_EGR_FBLOGIN索引应该会自动生成。

第三步:手动修复钩子关联(如果前两步没用)

有时候迁移后模块的钩子绑定会丢失,或者钩子没在数据库里注册:

  1. 先检查数据库:登录phpMyAdmin,打开你的PrestaShop数据库,查看ps_hook表(注意替换成你的实际表前缀,比如如果你的前缀是presta_就找presta_hook),搜索name字段值为HOOK_EGR_FBLOGIN的记录。
    • 如果没有这条记录,说明钩子没注册,可以先尝试卸载模块再重新安装,让模块自动创建钩子;
    • 如果卸载重装还是不行,手动执行SQL插入:
      INSERT INTO ps_hook (name, title, description, position) VALUES ('HOOK_EGR_FBLOGIN', 'EGR Facebook Login Hook', 'Hook for EGR Facebook Login module', 1);
      
      记得把ps_换成你的数据库表前缀。
  2. 检查模块的钩子绑定:进入模块的设置页面,确认它已经绑定到了header钩子(因为错误出现在header.tpl的编译文件里),如果没绑定,手动添加绑定。

第四步:检查主题模板文件

如果上面的方法都没用,看看你的主题模板:
找到themes/你的主题名称/header.tpl文件,检查里面有没有调用{$HOOK_EGR_FBLOGIN}的代码。如果这个模块你已经不用了,直接删掉这段代码;如果还要用模块,就回到前面的步骤确保模块和钩子正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:43:56