Magento致命错误:Class '没有发现…/app/Mage.php第546行


Magento Fatal error: Class 'Mage_Wsalogger_Helper_Data' not found in ... /app/Mage.php on line 546

我们使用webshopapps/wsalogger扩展。它运行得很好。突然,它在结帐页面上出现问题,并给出如下错误:

Fatal error: Class 'Mage_Wsalogger_Helper_Data' not found in /var/data/www/example.com/app/Mage.php on line 546

我从etc模块禁用扩展,但它仍然显示错误。有什么流程可以让我跳过结帐页面上的这个错误吗?

Magento寻找您的扩展的助手类,它找不到一个。这就是它抱怨的原因。

所以解决方案是添加那个助手类。因此,用以下内容创建这个助手类:

文件位置:app/code/<community> | <local> /Webshopapps/Wsalogger/Helper/Data.php

<?php
class Webshopapps_Wsalogger_Helper_Data extends Mage_Core_Helper_Abstract {
}

这将解决这个问题

注意:我不知道你的扩展驻留在哪个代码库中。它可能在communitylocal中。因此,在这两个位置检查您的扩展并添加这个helper

<标题>编辑

从您的评论中,我了解到您在扩展中定义了您的助手类。然后,我知道这个问题持续存在的唯一一个原因是错误的助手类调用在您的扩展或Magento中的某个地方。

为了调试,你可以使用以下信息:

辅助定义

在扩展的配置文件中定义了Helper类。在你的配置文件中,你可以看到类似这样的代码:
#FILE LOCATION : app/code/community/Webshopapps/Wsalogger/etc/config.xml
<config>
    ....
    <global>
        <helpers>
            <unique_reference_for_this_helper>
                <class>Webshopapps_Wsalogger_Helper</class>
            </unique_reference_for_this_helper>
        </helpers>
    </global>
</config>
所以在这里,我们声明了一个对helper类的唯一引用。关键字为unique_reference_for_this_helper。这意味着它是助手类的别名。现在它将允许我们像这样调用这个助手类。
    Mage::Helper('unique_reference_for_this_helper');

原因可能是

在您的情况下,可能有一个错误的调用您的呼叫您的助手。但除此之外,请再次检查helper类定义。它应该看起来像我上面描述的那样。这是你的类名应该是Webshopapps_Wsalogger_Helper_Data,它应该扩展Mage_Core_Helper_Abstract

如果Wsalogger名称相关的扩展不可用,那么应该在您的代码中的某个地方类的代码为

Mage::helper('wsalogger')

如果config.xml中与Wsalogger名称相关的扩展名是exits then it help helper class is not called

<global>
  <helpers>
<class>ThismoduleNameSpace_Wsalogger_Helper_Data</class>
  </helpers>
</global>

Data.php的代码(module codePool>ThismoduleNameSpace>Wsalogger>Helper)是

<?php
class ThismoduleNameSpace_Wsalogger_Helper_Data extends Mage_Core_Helper_Abstract {
}

不启用编译,直接点击"运行编译"。这就解决了我的问题。

如果你已经在编译中点击了"启用",并且无法访问你的管理面板,那么进入命令模式并禁用编译过程。然后您应该能够访问您的管理面板。一旦可以访问管理面板,请遵循上述步骤。